Рабочее...
Jun. 3rd, 2008 01:13 am![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
(только для программистов)
Готова версия 1.3 "Локализатора". По количеству глюкобагов программа доведена до состояния "больше не могу найти сам". По функциональности - до состояния "есть все, о чем мечтал". Сам очень доволен, так как получилось во многом лучше, чем популярный gettext.
Release notes:
- Добавлено множество опций, управляющих процессом локализации.
- Формат файла локализации улучшен - добавлены комментарии и строки в стиле C (с символом "\").
- Теперь программы с этим локализатором могут корректно работать даже при отсутствии файла с локализацией. Допускается "вшивание" одной локализации прямо в исполняемый файл.
- Неиспользуемые строки в локализации теперь не удаляются, а помечаются комментарием, чтобы потом их удалить (вручную или автоматически).
По-видимому, это последнее серьезное обновление и последний пост на эту тему. Дальше буду только исправлять баги. Самую свежую версию всегда можно будет взять на сайте.
Готова версия 1.3 "Локализатора". По количеству глюкобагов программа доведена до состояния "больше не могу найти сам". По функциональности - до состояния "есть все, о чем мечтал". Сам очень доволен, так как получилось во многом лучше, чем популярный gettext.
Release notes:
- Добавлено множество опций, управляющих процессом локализации.
- Формат файла локализации улучшен - добавлены комментарии и строки в стиле C (с символом "\").
- Теперь программы с этим локализатором могут корректно работать даже при отсутствии файла с локализацией. Допускается "вшивание" одной локализации прямо в исполняемый файл.
- Неиспользуемые строки в локализации теперь не удаляются, а помечаются комментарием, чтобы потом их удалить (вручную или автоматически).
По-видимому, это последнее серьезное обновление и последний пост на эту тему. Дальше буду только исправлять баги. Самую свежую версию всегда можно будет взять на сайте.
no subject
Date: 2008-06-02 10:03 pm (UTC)PS: сжатые файлы локализует?
no subject
Date: 2008-06-02 10:06 pm (UTC)no subject
Date: 2008-06-02 10:08 pm (UTC)no subject
Date: 2008-06-02 10:11 pm (UTC)no subject
Date: 2008-06-02 10:18 pm (UTC)no subject
Date: 2008-06-02 10:33 pm (UTC)no subject
Date: 2008-06-03 08:33 pm (UTC)no subject
Date: 2008-06-03 08:46 pm (UTC)Главные плюсы по сравнению с некоторыми Оналогами:
- Обращение к локализованной строке практиццки не требует накладных расходов, поскольку это просто обращение к const char *, а не вызов функции, не поиск по ключу и даже не сдвиг по индексу в массиве.
- Сам процесс локализации сильно автоматизирован - строкам не надо придумывать магические идентификаторы, локализатор их придумывает сам по содержимому строки и сам делает все замены в коде программы. Ну и много других "автоматизирующих" плюшек - подробнее по ссылке.
- Изменение списка строк, подлежащих локализации, не приводит к массовой перекомпиляции проекта - так как локализатор не создает общего хэдера, в котором есть все идентификаторы, вместо этого он создает extern-объявления в тех файлах, где это нужно (сам создает и сам за ними следит).
Локализация - что такое?
Date: 2008-06-03 09:01 pm (UTC)no subject
Date: 2008-06-03 09:03 pm (UTC)no subject
Date: 2008-06-03 09:19 pm (UTC)Сам перевод - дело человека в любом случае (что такое автоматические переводчики, ты в курсе). Можно просто перевести все литералы "...." в программе на другой язык, но тогда придется компилировать по одной версии программы под каждый язык. При гибкой локализации предусматривают возможность менять язык интерфейса, сообщений и прочего, делая минимум телодвижений и уж точно без перекомпиляции. Например, программа грузит некий файл со строками на старте и потом на runtime работает с этими строками. Тогда смена языка выполняется элементарно: заменяют этот самый файл со строками или выбирают какой-то другой файл для загрузки. В данном случае можно и так, и сяк, а, если ресурсного файла нет, можно сделать вариант локализации по-умолчанию.
no subject
Date: 2008-06-04 09:06 pm (UTC)внезапно! опции, тысячи их!
%-)
no subject
Date: 2008-06-04 10:27 pm (UTC)