LINUX.ORG.RU

[C] Динамически выбор языков


0

0

Вот интересно, кто что использует для выбора языка вывода сообщений «на лету»?

Я, например, придумал такую конструкцию

#define		_LANG(_var, _ru, _en)	char _var##ru[] = _ru;\
					char _var##en[] = _en;\
					char *_var[2] = {_var##ru,  _var##en};
#define		_L(x)	(x[Lang])
unsigned char Lang = 1; // по умолчанию - английский
_LANG(_s_Name_, "Ваше имя", "Your name");
...
Потом пишу в коде программы:
ptr = getenv("HTTP_ACCEPT_LANGUAGE");
if(ptr) if(strncmp(ptr, "ru", 2) == 0) Lang = 0;
...
printf("%s:<input type='text' name='Name' OnChange='submit_form();' size=50>\n", _L(_s_Name_));

☆☆☆☆☆

Ответ на: комментарий от anonymous

gettext, не?

По-моему, мой способ куда как проще :)

Eddy_Em ☆☆☆☆☆ ()
Ответ на: комментарий от Eddy_Em

ты в char* собираешься хранить текст на нескольких языках? удачи

lester ★★★★ ()
Ответ на: комментарий от Obey-Kun

gettext, куда уж проще

Что-то у меня возникают смутные подозрения, что «за кадром» gettext делает то же самое, что мои макросы :)

Eddy_Em ☆☆☆☆☆ ()
Ответ на: комментарий от Eddy_Em

>У меня везде локаль кои8-р :)


Ты пишешь только для себя?


Ещё вопрос не по теме: что используется в coreutils для локализации?

ShTH ()
Ответ на: комментарий от ShTH

Ты пишешь только для себя?

Нет, но у нас везде локаль кои-8, и меняться ближайшие 10-20 лет точно не будет (слишком много софта на ней написано).

Ещё вопрос не по теме: что используется в coreutils для локализации?

Откуда же я знаю? :)

Eddy_Em ☆☆☆☆☆ ()
Ответ на: комментарий от Eddy_Em

>Откуда же я знаю? :)


Ко всем обратился. Лениво стало писать два треда ;)

ShTH ()
Ответ на: комментарий от Eddy_Em

>Дык, у вас такая же проблема?


Это имеет отношение к локализации.

ShTH ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.