ftp://ftp.gnu.org/gnu/gettext/ ) 鍜宭ibiconv(http://www.gnu.org/software/libiconv/) ,鍓嶈呮槸鐢ㄤ簬瀹炵幇Resource bundle,鑰屽悗鑰呯敤浜庡悇縐嶇紪鐮佽漿鍖栥?br>
(娉?榪欓噷娌℃湁鑰冭檻cross-platform)
1. 瀹炵幇鏂規硶
a . 浣跨敤po鏂囦歡浣滀負璧勬簮鏂囦歡 (寤鴻緙栫爜鏄痷tf-8)
涓鏂歸潰鍥犱負UTF-8鍏煎ANSI,鍙﹀涓鏂歸潰鑰冭檻鍒癎11N鐨勭▼搴忓ぇ閮ㄥ垎浣跨敤utf-8杈撳嚭錛屾瘮濡傝緭鍑哄埌database,web UI, file絳夌瓑銆?br>
b. 浣跨敤getext浠巖esource file ( mo鏂囦歡)璇誨埌鐩稿簲鐨凩10N resource鏂囦歡
娉ㄦ剰榪欓噷闇瑕佸厛setlocale鏉ヨ緗甽ocale
#include <stdio.h>
#include <locale.h>
#include <libintl.h>
#define _(string) gettext (string)
int main(int argc, char **argv)
{
if (setlocale(LC_ALL, “”) == NULL) {
fprintf(stderr, “setlocale() error.\n”);
return -1;
}
if (bindtextdomain(package, “/usr/share/locale”) == NULL) {
fprintf(stderr, “bindtextdomain() error.\n”);
return –1;
}
if (textdomain(package) == NULL) {
fprintf(stderr, “textdomain() error.\n”);
return –1;
}
printf(“%s\n”, _(“Hello, world!”));
return 0;
}
c.濡傛灉瑕佽緭鍑哄埌鎺у埗鍙?console),鍥犱負涓嶆槸console閮芥敮鎸乽nicode output錛屾墍浠ユ帹鑽愮殑鏂規硶鏄鍏堟槸鎶妘tf-8杞寲涓烘湰鍦扮紪鐮侊紝鐒跺悗浣跨敤printf杈撳嚭銆備笉鎺ㄨ崘浣跨敤wprintf榪涜杈撳嚭錛屼竴鏂歸潰鏄洜涓簑char_t鐨勫ぇ灝忛殢緙栬瘧鍣ㄤ笉鍚岋紝涓嶅ソ鎺у埗銆傚彟澶栦竴鏂歸潰錛屽緢澶歸printf鐨勫疄鐜頒篃閮芥槸鍏堟妸wchar_t[]杞負鏈湴緙栫爜錛岀劧鍚庤緭鍑恒傝漿鍖栫紪鐮佷嬌鐢╨ibconv
d.濡傛灉瑕佽緭鍑哄埌web pages,database,file錛岀紪鐮佹帹鑽愪嬌鐢╱tf-8.
e.濡傛灉瑕佽緭鍑烘湰鍦板寲鐨勬棩鏈熷拰鏃墮棿錛屼嬌鐢ˋPI: strftime
#include <stdio.h>
#include <time.h>
int main(int argc, char **argv)
{
time_t t;
struct tm *ptm;
char buffer[100];
memset(buffer, 0, sizeof(buffer));
if (time(&t) < 0) {
fprintf(stderr, “time() error: %m\n”);
}
if ((ptm = localtime(&t)) == NULL) {
fprintf(stderr, “localtime() error: %m\n”);
}
strftime(buffer, sizeof(buffer), “%x %X”, ptm);
printf(“%s\n”, buffer);
return 0;
}
f. 濡傛灉瑕佽緭鍑烘湰鍦板寲鐨勬暟瀛楀拰璐у竵錛屼嬌鐢ˋPI: strfmon
#include <stdio.h>
#include <monetary.h>
int main(int argc, char **argv)
{
char buffer[100];
strfmon(buffer, sizeof(buffer), “%=*i", 12345.67);
printf(“%s\n”, buffer);
return 0;
}
2.鐩綍緇撴瀯
/product
/i18n
/zh_TW
your.mo
/ja_JP
your.mo

]]>