1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/hevake_lcj-MultiLanguage

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

MultiLanguage

Что это такое?

MultiLanguage — это многоязычный модуль, реализованный на C++. Он считывает фразы из многоязычных файлов и выполняет перевод во время работы программного обеспечения.

Особенности:

  • Простота добавления новых языков. Для добавления нового языка LANG достаточно скопировать файл language_xx.txt и переименовать его в language_LANG.txt. Затем в программе необходимо вызвать функцию set_language("LANG").
  • Поддержка любых специальных символов. В многоязычных файлах можно использовать \xNN для представления любых символов. Например, \x0a представляет символ перевода строки, а \x41 — букву «A».
  • Поддержка доменов. Домены позволяют различать значения фраз с одинаковыми названиями. Например, фраза «M» в диалоговом окне A может переводиться как «средний», а в диалоговом окне B — как «мужской». Домены помогают избежать конфликтов.
  • Наследование доменов. Большинство фраз могут быть адекватно переведены в домене DomainA. Однако некоторые фразы требуют специального перевода. Нужно ли создавать новый домен DomainB и копировать все фразы из DomainA? Как поддерживать такой подход в будущем, если количество фраз превышает несколько тысяч? При наследовании DomainB от DomainA, при переводе фраз в DomainB сначала выполняется поиск в этом домене. Если фраза не найдена, поиск продолжается в DomainA.
  • Обратная трансляция. Если A транслируется в aa, то обратная трансляция переводит aa в A.
  • Удобство отладки. На этапе разработки эта функция позволяет добавлять сообщения об ошибках при неудачном переводе фраз. Это облегчает разработку и решение проблем с переводом. Например, если фраза «Yes» не имеет соответствующего перевода, она будет возвращена как «!Yes!». Если перевод фразы «Yes» существует, но является пустым значением, будет возвращено «?Yes?». На этапе выпуска продукта эту функцию можно отключить. Если фраза «OK» не была правильно переведена, инструмент также вернёт «OK».

Формат файла:

  • K-V формат;
  • XML формат (запланированный интерфейс, ещё не реализован).

K-V формат: [A] OK=хорошо ERROR=ошибка M=средний

[B:A] M=мужской # здесь перевод отличается

Код-1: Квадратные скобки включают все фразы для данного домена. Например: [A]. Каждая фраза имеет формат K=V, разделённый знаком равенства. Поддерживаются комментарии, обозначенные символом # после строки. [B:A] определяет домен B, наследуемый от домена A.

XML формат (не определён).

Зависимости:

  • библиотека boost. Предполагается, что библиотека установлена в каталоге /usr/local/boost. Необходимые библиотеки: libboost_system.so и libboost_filesystem.so.

Установка и компиляция:

Подготовка: предполагается, что у вас уже установлена библиотека boost в указанном каталоге. Если нет, создайте символическую ссылку с помощью команды ln -s your-boost-path /usr/local/boost. Также необходимы GCC и make.

Автор использовал GCC версии 4.4.7 20120313 (Red Hat 4.4.7-11) (GCC).

Загрузка и компиляция: вы можете загрузить zip-архив и распаковать его или клонировать проект на локальный компьютер.

Выполните следующие команды: cd MultiLanguage make && sudo make install

Тестирование: при выполнении команды make test вы увидите некоторые ошибки, которые не должны вызывать беспокойства, так как эти функции ещё не реализованы. Изначально планировалось поддерживать форматы XML и K-V, но пока реализован только K-V. Одного формата будет достаточно.

Интеграция:

  • C++ (TODO);
  • C (TODO).

Обратная связь: Если у вас возникнут проблемы при использовании, пожалуйста, обсудите их и поделитесь своими ценными идеями! Автор готов к обсуждению и может быть найден по следующим контактам:

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Реализовать универсальный многоязычный функциональный модуль на платформе C++. Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/hevake_lcj-MultiLanguage.git
git@api.gitlife.ru:oschina-mirror/hevake_lcj-MultiLanguage.git
oschina-mirror
hevake_lcj-MultiLanguage
hevake_lcj-MultiLanguage
master