|Regional and Language Options|
| || |
|Apr 5, 2007|
|With PA1688, we have supported over 30 different language firmware.
None of us understand language except Chinese and English, volunteers all over the world helped us to do the entire localization works.
I believe that we can do this again with AR1688, hopefully even better because it is well planned from the beginning.
We are going to release version 0.10 firmware today. After 0.09 finalized all SIP/IAX2 protocol implementations, in this version we have finalized all UI implementations.
Of course we will continue to improve it and fix bugs, however, developers can do regional and language customization based on this version without worrying future huge changes.
Based on 0.10 software API, please following steps below to add your own native language support:
0) All files and subdirectorys here are located in D:\SDCC\ directory.
1) Starting from inc\version.h, find the RES_XX sections, check if your regional code is in the list or not.
The XX code is following ISO 3166. If it already exists, you can jump to step 4 directly.
2) Change tools\namebin project, add your regional code to namebin.cpp related part, re-compile bin\namebin.exe.
3) Add your regional DTMF frequency and interval to src\dtmf.c, search for RES_US in files if you need guide for changes.
4) Check src\res\web_us, translate the English web pages into your native language.
5) Translate strings in src\ui_str.c. There is Chinese strings already in it, you might not be able to read it. Just add your own language translation in your native coding.
With 2x16 LCD, the display will still be English, but we can add other language font display with dot-matrix LCD.
6) Open src\time.c, change time and date display format accordingly. If your region use day light saving time, be sure to add it, or send request to us by email.
China does not use day light saving today. Currently only USA day light saving is implemented. Make sure Automatically Adjust Clock for Daylight Saving Changes option is checked in settings.
Updated on May 14, 2007
Compared with the first version six weeks ago, we have changed some directory and file names on our API. So here is the AR1688 API 0.12 updated instruction to add regional and language options.
1) Default working directory has been moved from D:\SDCC to C:\SDCC. The change is because of Tang Li has got a new software developing notebook without D drive.
2) Original src\res\web_us directory has changed to src\res\us, translate the English web pages into your native language.
3) Still a good starting point at src\ui_str.c, strings originally in this file has been moved to src\res\us and other directory like src\res\cn, the new files are menu.h and str.h.
4) English strings in src\time.c has be moved to src\res\us\time.h.
5) Translate the 3 .h files in src\res\us into your native language. Take French as example, translate with same file names into src\res\fr directory for 2x16 character LCD which does not support accented characters,
and translate full version with accented characters into files named menu_dot.h, str_dot.h and time_dot.h for dot-metric display. Keep the original coding as it is.
Updated on Feb 13, 2008
Inspired by recent Ferhat's work on Turkish support on his 4x20 character LCD with special Turkish char font data in self defined LCD CGRAM space, we improved our regional and language support features in current AR1688 0.27 test software.
Forget all those old steps, here is all the steps to add your own native language support in AR1688 firmware, for both dot-matrix LCD and character LCD:
1) Add RES_XX in inc\version.h, XX code based on ISO 3166. Use RES_US related implementations as example all the time.
2) Add your regional DTMF frequency and interval to src\dtmf.c.
3) In src\time.c, change time and date display format accordingly, and add day light saving time support if your region uses day light saving.
4) Translate the English web pages in src\res\us into your native language, put them in the new src\res\xx directory.
5) Translate src\res\us\menu.h, time.h and str.h into your native language, keep the original coding as it is in the file. For example, keep ISO 8859-1 coding for French special chars and ISO 8859-9 coding for Turkish special chars.
6) Add necessary ISO 8859-X font in src\font.c, or update other font in the 256k bytes program flash font data storage space.
For users with less programming experience, only step 4 and 5 are necessary, we will do the other works after we have received the translations for step 4&5.
Updated on March 11, 2008
Current AR1688 software has supported Chinese, English, French, Italian, Romanian, Russian, Spanish and Turkish. What is more, Alex also added extended char input method in Romanian and Russian version. So we have step 7 now with 0.29 test software.
7) Find src\res\us\inputmap.h, change it to your own native language. src\res\ro\inputmap.h is Romanian example and src\res\ru\inputmap.h is Russian example.
Different inputmap.h is included with RES_XX define in src\menu.c.
Updated on May 6, 2010
A French user reported French version web and display errors many months ago. We finally figured out why recently, but we still can not solve the problem because none of us understand French.
AR1688 0.46 software is going to release with a broken French version, and what is worse, many other language version might be broken too.
We can only assure that English and Chinese versions are good.
Those editor tools like Ultra Edit v11.00+ and MS Visual Studio 2008 running on our new development Windows Vista and Windows 7 computers caused the error.
With language for non-Unicode programs always set for Simplified Chinese, the French strings in our .c, .h, and .html source files were changed in a forced way before we knew it.
And many other language versions may suffered the same problem too. The only way to prevent this is to set non-Unicode to French when we edit French related files, and we will remember it from now on.
Right now, we need users to help to test all other language versions with our coming 0.46 release.