Различия
Здесь показаны различия между выбранной ревизией и текущей версией данной страницы.
programming:intern [2021/01/03 08:32] sfs [Полный пример] |
programming:intern [2024/01/24 15:50] (текущий) sfs [Правильный метод:] |
||
---|---|---|---|
Строка 11: | Строка 11: | ||
*Модификация скрипта и создания файла перевода ///usr/share/locale/ru/LC_MESSAGES/имя_переводимой_программы.mo//. | *Модификация скрипта и создания файла перевода ///usr/share/locale/ru/LC_MESSAGES/имя_переводимой_программы.mo//. | ||
*Экономим место и упрощаем жизнь переводчикам на другие языки. | *Экономим место и упрощаем жизнь переводчикам на другие языки. | ||
- | *Упомянутые утилиты (кроме poedit) находятся в devx модуле | + | *gettext и прочие упомянутые ниже утилиты (кроме poedit) находятся в devx модуле |
==== Полный пример ==== | ==== Полный пример ==== | ||
Строка 23: | Строка 23: | ||
xgettext script.sh -o script.po | xgettext script.sh -o script.po | ||
- | xgettext не настолько интеллектуальный. Как правило , если автор сам не сделал mo - придется делать самому руками, т.е править текст скрипта как в Пример 1 ниже. Готовый вариант отправить автору, чтобы следующие версии были уже интернационализованы | + | xgettext не настолько интеллектуальный. Как правило , если автор сам не сделал .po - придется делать самому руками, т.е править текст скрипта как в Пример 1 ниже. Готовый вариант отправить автору, чтобы следующие версии были уже интернационализованы |
*В тесктовом редакторе переводим (заполняем пустоты в msgstr) и проверяем строку | *В тесктовом редакторе переводим (заполняем пустоты в msgstr) и проверяем строку | ||
Строка 79: | Строка 79: | ||
==== Добавьте теги вокруг переводимого текста: ==== | ==== Добавьте теги вокруг переводимого текста: ==== | ||
- | $(gettext 'string_to_be_translated') | + | $(gettext 'string to be translated') |
или | или | ||
- | `eval_gettext 'string_to_be_translated'` | + | `eval_gettext 'string to be translated'` |
- | === Пример: === | + | === Пример 1: === |
До: | До: | ||
- | echo "string_to_be_translated" | + | echo "string to be translated" |
После: | После: | ||
- | echo "$(gettext 'string_to_be_translated')" | + | echo "$(gettext 'string to be translated')" |
+ | Создаем файл text.po | ||
+ | <code> | ||
+ | msgid "" | ||
+ | msgstr "" | ||
+ | "Project-Id-Version: Midnight Commander\n" | ||
+ | "Report-Msgid-Bugs-To: http://www.midnight-commander.org/\n" | ||
+ | "POT-Creation-Date: 2019-06-22 13:45+0200\n" | ||
+ | "PO-Revision-Date: 2019-03-03 23:22+0000\n" | ||
+ | "Last-Translator: AlexL <alex.valer@mail.com>\n" | ||
+ | "Language-Team: Russian (http://www.transifex.com/mc/mc/language/ru/)\n" | ||
+ | "Language: ru\n" | ||
+ | "MIME-Version: 1.0\n" | ||
+ | "Content-Type: text/plain; charset=UTF-8\n" | ||
+ | "Content-Transfer-Encoding: 8bit\n" | ||
+ | "Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" | ||
+ | "%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n" | ||
+ | "%100>=11 && n%100<=14)? 2 : 3);\n" | ||
+ | |||
+ | msgid "string to be translated" | ||
+ | msgstr "строка будет переведена" | ||
+ | </code> | ||
+ | Первые строки - заголовок | ||
- | ---- | + | Пример многострочного перевода: |
+ | <code> | ||
+ | msgid "" | ||
+ | "<b>Note:</b> The Retrovol settings can be adjusted at any time in the future " | ||
+ | "by right-clicking on the loadspeaker-icon in the tray." | ||
+ | msgstr "" | ||
+ | "<b>Примечание:</b> Настройки Retrovol можно изменить в любой момент в " | ||
+ | "будущем, щелкнув правой кнопкой мыши на иконке звука в трее." | ||
+ | </code> | ||
+ | === Пример 2: === | ||
До: | До: |