Интернационализация

Пожалуйста, экспериментируйте в песочнице!

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

Загрузка страниц переводов

Страницы для многих языков, таких как Французский, Немецкий, Датский, Испанский и Русский уже сделаны и есть на сайте pmichaud.com. Вы можете загрузить архив с этими переводами отсюда: http://www.pmwiki.org/pub/pmwiki/i18n/. Просто загрузите подходящие архивы и распакуйте их в папку, содержащую установленую pmwiki.php. Архив содержит ряд файлов страниц размещающихся в папке wikilib.d/ и некоторые сценарии для переводов пользующихся кодировками символов отличных от iso-8859-1, которая является кодировкой по умолчанию для PmWiki.

После того как страницы переводов установлены язык включается добавлением в файл config.php вызова XLPage(). Например, для включения Русско-язычных диалогов надо указать

XLPage('ru','PmWikiRu.XLPage');

указывающий загрузить переводы для Русского языка ('ru') со страницы PmWikiRu.XLPage. Эта функция превосходно подходит для загрузки нескольких страниц — так что, если вы захотите создать свой собственный перевод не затрагивая полученого из i18n.tgz, то просто сделайте другую страницу (смотри ниже) и загружаете её как указано далее:

XLPage('ru','PmWikiRu.XLPage');       # из i18n.tgz
XLPage('ru','PmWikiRu.XLPageLocal');  # Мой собственный перевод

Если вы задумали использовать на вашем сайте несколько языков и используете группы для выбора языка, то возможно вы захотите разместить такой код в файлах местной подстройки (смотри Настройка отдельных групп). К примеру, если ваш сайт публикуется на Русском и Английском языках, а Русские страницы находятся в группе называющейся Ru, то вы можете создать файл с именем Ru.php в папке local/ с таким содержанием:

<?php if (!defined('PmWiki')) exit();
##Изменить на Русский язык
XLPage('ru','PmWikiRu.XLPage');

Для доступа к Русской документации в группе PmwikiRu вы в праве сделать страницу c тем же содержимым под именем PmWikiRu.php. В файле En.php нет необходимости, так как в данном случае Английский язык является изначальным.

В качестве альтернативного способа можно добавить в config.php проверку на наличие в группе страницы XLPage и автоматическую подгрузку оной:

    
$xlpage = FmtPageName('$Group.XLPage', $pagename);
if (PageExists($xlpage)) XLPage($xlpage, $xlpage);

В этом случае вам надо скопиривать соответствующую страницу XLPage в любую группу нуждающуюся в поддержке другого языка.

Создание Новых Переводов

Если для выбранного вами языка страница перевода отсутствует, то её просто сделать! Страница перевода XLPage просто содержит строки в следующем формате:

'фраза' => 'переведёная фраза',

где "фраза" это международная фраза (отмеченая ...) в $...Fmt переменных PmWiki, а "переведённая фраза" — это то, что будет выведено в результате. Например, строка (из PmWikiRu.XLPage)

'Search' => 'Поиск',

преобразовывает при выводе "Search" в "Поиск". Файл PmWiki:XLPageTemplate может послужить хорошей отправной точкой в создании новой XLPage — в него уже включено большинство ключевых фраз PmWiki.

Если вы создаёте новые версии страниц PmWiki на других языках — пожалуйста не забывайте добавлять их на главном сайте PmWiki, так чтобы они были доступны для других в архиве i18n.tgz!

Термин "i18n" часто используется как аббревиатура для Английского слова "internationalization". Это сокращение произошло из того факта, что в этом слове между "i"(первой) и "n"(последней) есть 18 букв(всего их 20), которые некоторые люди сочли трудными для набора. Вот и осталось от слова только "i", "n" и число букв между ними — 18.

Инструменты для Локализации PmWiki

Вы можете помочь в локализации PmWiki на ваш язык на оригинальном сайте:

<< Управление закачками | Документация | ВикиФермы >>

Перевод страницы PmWiki.Internationalizations — Оригинал перевода PmWikiRu.InternationalizationsСсылаются
PmWikiRu.Internationalizations: редакция от 19.03.2013 10:54
PmWiki.Internationalizations: редакция от 16.07.2022 06:49