Intereting Posts
показать категории WordPress с разной структурой Загрузка аватара из интерфейса HowTo: добавление класса в список виджетов боковой панели Как я могу указать позицию элемента панели администратора, добавленную с помощью $ wp_admin_bar-> add_menu () или add_node ()? Как перенаправить ссылку на новую ссылку? add_post_meta | update_post_meta | Через интерфейс Как включить предварительную выборку HTML5 на этой странице? Удаление сайтов в wordpress multisite (не приостановлено) Как запрашивать сообщения для персонализированного типа сообщений с изображением для первого 2 сообщения? Копирование из wordpress для dev дает разный вывод в браузере Изменить разделители в тегах HTML <title> </ title> Как отобразить статистику BBPS? Как сохранить массив с несколькими настройками с помощью API настроек для страницы параметров подключаемого модуля? Недопустимая разметка списка вложенных списков TinyMCE Не удается получить доступ к веб-сайту WordPress с внешнего IP-адреса, в то время как он работает нормально

перевод (i18n) должен начинаться с английского ПО?

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

Но что, если скажешь, я итальянец? Итак, базовый язык – итальянский, а другие – переводы с итальянского? Потому что это именно так: я хотел бы иметь исходный файл PO на итальянском языке и оттуда оттуда.

Каков способ сделать это?

Solutions Collecting From Web of "перевод (i18n) должен начинаться с английского ПО?"

В основном все темы там написаны на английском языке, а строки локализации будут выглядеть примерно так: _e( 'Some English text', 'domainname' ); , Обычно авторы включают шаблон pot с темой. Я получаю код

«Файлы POT (Portable Object Template) Первым шагом в процессе локализации является то, что программа используется для поиска в исходном коде WordPress и выбирает каждое сообщение, переданное в функцию __ () или e (). Этот список англо- языковые сообщения помещаются в специально отформатированный файл шаблона (файл POT), который формирует основу всех переводов. Как правило, вы можете загрузить файл POT для WordPress, поэтому вам не нужно создавать свои собственные. Отдельные файлы POT также могут для тем и плагинов, если разработчик темы / плагина вложил весь текст в функции _ () или _e () ».

Поэтому для перевода текста на язык, подобный итальянскому, вам нужно создать файл po и mo из исходного шаблона pot и назовите его соответствующим языку.

Тем не менее, вы можете создать свою собственную тему, и вместо того, чтобы использовать английский, используйте итальянские в себе строки локализации, такие как _e( 'Some Italian text', 'domainname' ) . Таким образом, ваш язык по умолчанию будет итальянский без языка, установленного в wp-config.php . Ваш шаблон pot который вы собираетесь создать, теперь будет содержать итальянский текст вместо английского, поскольку ваша тема находится на итальянском языке. Затем пользователь может перевести с итальянского на свой собственный язык, создав шаблон po и mo с соответствующим языком и текстами внутри.

Хорошо, теперь дебаты, как указано в кодексе, шаблоны банкнот содержат английский язык, и я снова цитирую код

«Этот список англоязычных сообщений помещается в специально отформатированный файл шаблона (файл POT)».

Я говорю на африкаанс, но, ради сохранения мира и стандартного языка WordPress, я пишу все на английском языке, создаю свой файл в pot , и из этого я создаю свои шаблоны po и mo для языка африкаанс.

Я лично считаю, что нужно придерживаться стандартов. Каждый должен уважать или унижать эти стандарты. Я имею в виду, например, принимать африкаанцев, менее 1,5 миллиона человек во всем мире говорят на африкаанс, а рядом с Бельгией и голландцами, которые могут в какой-то мере понять африкаанс, никто больше не понимает язык или грамматику. Так что, в основном, если вы напишете тему на африкаанс, только несколько человек смогут ее использовать, так как никто не сможет перевести ее на свой иностранный язык.

Это проблема, если вы думаете продать свою тему. Хорошо, это может сработать, если вы продадите свою тему людям, которые будут использовать один и тот же язык, но ваш рынок будет настолько мал, что это не стоит.

Но, как я уже сказал, вы должны соблюдать стандарт или нет. Я надеюсь, что эта помощь

Хорошо, я просто добавляю ответ на свой вопрос, чтобы прояснить всю историю и решения. Это также служит для других вопросов, связанных с lang.

Итак, что у меня есть:

  • Собственная многоузловая установка
  • Каждый сайт представляет собой другой язык
  • У каждого сайта есть своя тема, ребенок основного языка
  • Основной язык – итальянский (it_IT)
  • это просто производственная специальная тема, поэтому не нужно ее распространять

Скажем, у нас есть родительская тема под названием «родительская тема» и дочерняя тема «детская тема».

Шаги:

В РОДИТЕЛЬНОЙ ТЕМЕ

  • в style.css добавить эту строку> Текстовый домен: родительская тема
  • в functions.php, в 'after_setup_theme' добавьте фильтр :

    load_theme_textdomain ('parent-theme', TEMPLATEPATH. '/ languages');

  • в папке темы добавьте папку языков

  • в этом случае добавьте файлы locale.mo . Я имею в виду, например, en_US.mo, fr_FR.mo и т. Д. …

Файлы .mo будут использоваться функциями трансляции wordpress (__ (), _e ()) и т. Д.

Файлы .mo представляют собой двоичные файлы, которые будут созданы из файлов .po (по существу, одинакового с .pot), используя некоторое программное обеспечение, такое как poedit или другие (просто Google).

Файлы .po будут иметь такой контент (образец формы en_US.po):

 #: front-page.php msgid "prodotti" msgstr "products" #: front-page.php msgid "EVENTI" msgstr "EVENTS" #[etc....] 

Где # есть комментарии , msgid – это исходная (основная строка) строка (в данном случае – итальянская строка) и msgstr – это перевод . ПРИМЕЧАНИЕ: чувствительный к регистру .

Файлы po в теме / языках предназначены только для определения перевода, которое вам нужно для ваших нужд на вашей теме (так может быть очень мало), не более того.

Тогда вы просто в своей теме (и дочерние темы) можете использовать функции перевода (см. WordPress codex), такие как __ (), _e () и так далее …

Итак, я ничего не делал в детской тематике , вся работа на главной теме. Если вам нужен конкретный контекст, просто зарегистрируйте textdomain для дочерней темы (см. http://codex.wordpress.org/Function_Reference/load_child_theme_textdomain ), добавьте папку языков в дочернюю тему и добавьте файлы po / mo.

ПРИМЕЧАНИЕ. Имейте в виду, что функции перевода используют get_locale () для выбора правильной формы файла .mo, которая должна принимать переводы. get_locale () проверяет существование константы WPLANG (в конечном счете, настроенной в wp-config.php) или других параметров от администратора, или она берет то, что исходит от фильтра 'locale'. Для моих нужд я даже не устанавливаю WPLANG.

Наконец, нужно иметь разные языки в интерфейсе, но тот же язык для администратора для всех сайтов в многопользовательском режиме. Если это так, вы устанавливаете свой язык администратора только из общей настройки в admin. Затем в каждой функции темы.php:

 add_filter('locale', 'set_admin_locale'); function set_admin_locale() { return 'en_US';//or whichever language/locale you want in frontend } 

Надеюсь, это поможет людям проникнуть во все эти беспорядки. Это не так сложно, но вам нужно поставить какой-то порядок, и именно поэтому я просто написал этот длинный ответ.