LINUX.ORG.RU

Как сподручнее привернуть i18n в сишные эмбеды

 ,


0

2

Хочу понтануться и писать прошивки сразу с поддержкой переводов.

Собственно вопрос - а как нынче это принято делать, чтобы было молодежно и современно?

- Хочется чтобы можно было привернуть испорт-эккспорт на вебсайты, для совместных переводов.
- Хочется поддержку плюралов, но чтобы можно было не возиться вручную с пачками вариаций, а лепить макросами типа как тут.
- Хочется удобную нотацию в коде, и чтобы не долбиться с добавлением новых фраз.

Если поддаться NIH-синдрому, то я бы наверное фразы хранил в JSON/YAML и генерил по нему сишные исходники, заодно раскрывая синтаксис плюралов до стандартного gettext(). Но все-таки интересно, может уже есть накатанные процессы?

И второй вопрос - а идентификаторы фраз сейчас принято использовать или это устарело?

_(err_file_not_found) // тут какой-нибудь enum
_('File not found')   // а как переводы не растерять если текст поменяется?

Как правильнее и от чего зависит?

★★★★★

Последнее исправление: Vit (всего исправлений: 1)
Ответ на: комментарий от d_a

У меня вопрос не про сам gettext, а про «организацию бизнес-процесса», и какие есть альтернативы. Может не очень удачно сформулировал.

PS. доку по gettext перечитываю тоже, да.

Vit ★★★★★
() автор топика
Ответ на: комментарий от Vit

так сам gettext и даёт «бизнес-процесс», если это можно так назвать. не надо никаких json'ов. там свои файлы переводов и они интегрируются в разные переводческие утилиты. не очень понятно, чего ты хочешь.

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

там свои файлы переводов и они интегрируются в разные переводческие утилиты. не очень понятно, чего ты хочешь.

1. Хочу понять как именно интегрируются в переводческие утилиты. Какая вебня для этого есть, и как импорт-экспорт устроен.

2. Ну и всякую бытовуху. Например, я опечатался во фразе _(«miztyped tekst»). Фразу перевели на 10 языков. Потом я в сорцах поправил текст, и получается что идентификатор слетел, переводы отвалились. Как такой кейз решается? Если заново переводить - то как чистить старый мусор.

3. Хочу лаконичнее записывать плюралы. Пример давал по ссылке. Многим такое нравится. Значит нужен еще какой-то препроцессор, перед тем как переводы в саму фирмварь попадут.

Ну то есть, я хочу взять все годное от gettext (потому что его должны поддерживать все ко можно), и сделать мелкую прослоечку для эмбедов - просто потому что там нет файловой системы, чтобы переводы в файлах хранить, и вообще линукса нет.

Vit ★★★★★
() автор топика
Ответ на: комментарий от Vit

сделать мелкую прослоечку для эмбедов - просто потому что там нет файловой системы, чтобы переводы в файлах хранить, и вообще линукса нет.

Когда я писал для socfpga, там всё было. Но, в общем конечно никто не мешает взять готовые тулзы из gettext которые вычёрпывают строки и слияют файлы переводов и сделать свою поддержку в рантайме вместо libintl.

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

Я просто не имел дела с gettext, и не знаю какими утилитами это дело успело обрасти. Поэтому вопросы чисто бытовые, ну я выше пронумеровал.

Дело не в кодинге, саму прокладку написать не сложно.

Во, вспомнил еще специфичную задачу - надо автоматически пиксельные фонты перестраивать, оставлять только используемые символы + заданные диапазоны.

Vit ★★★★★
() автор топика
Ответ на: комментарий от Iron_Bug

Тот кусок, который не работает, допилить не сложно. Главное что сохранится формат данных и куча готовых инструментов для перевода.

Vit ★★★★★
() автор топика
Ответ на: комментарий от Vit

Во, вспомнил еще специфичную задачу - надо автоматически пиксельные фонты перестраивать

И это, и вычёрпывание строк, и слияние переводов, и компиляция переводов, и линковка всего в один жирный бинарь если нет фс - - это задачи сборочной системы. Надеюсь, она у тебя хорошая. (Я использовал cmake).

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

Мне мейка хватало, задачи простые. А утилиты хотел по-быстрому на яваскрипте наговнякать (в т.ч. генератор сишного кода по фразам, чтобы с линковкой не париться). Но потом решил спросить, какие вообще нужны и есть ли готовые.

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