Во-первых, для XBMC Frodo и выше предлагается использовать диапазон идентификаторов строк 32000-32999 для надстроек скриптов.
Кроме того, по-прежнему не требуется использовать формат .po для переводов, вам все же разрешено использовать формат .xml.
Anayway, вот пример для обоих:
YOUR_ADDON_DIR/ресурсы/язык/английский/strings.po
# XBMC Media Center language file
# Addon Provider: Tristan Fischer ([email protected])
msgid ""
msgstr ""
"Project-Id-Version: XBMC Addons\n"
"Report-Msgid-Bugs-To: [email protected]\n"
"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: XBMC Translation Team\n"
"Language-Team: English (http://www.transifex.com/projects/p/xbmc-addons/language/en/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: en\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgctxt "#32000"
msgid "Hello"
msgstr ""
YOUR_ADDON_DIR/ресурсы/язык/английский/strings.xml
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<strings>
<string id="32000">Hello</string>
</strings>
Опять же, вам не нужны оба, один из них в порядке.
Чтобы использовать "Hello" -string (с ID = 32000) в XML-файлах кожи:
<control type="label">
<description>My hello label</description>
<posx>0</posx>
<posy>0</posy>
<width>80</width>
<height>36</height>
<align>left</align>
<font>font12</font>
<textcolor>white</textcolor>
<visible>true</visible>
<label>$LOCALIZE[SCRIPT32000]</label>
</control>
И если вам нужен перевод на Python:
import xbmcaddon
addon = xbmcaddon.Addon()
my_hello_string = addon.getLocalizedString(32000)
Спасибо за эту сферу , Должен ли я использовать один и тот же идентификатор для других языков? если да, то как xbmc будет знать, какой язык я ищу, если я хочу читать для французского языка, который имеет тот же идентификатор, что и английский? –
@ user3179027: Да, конечно, идентификаторы должны быть одинаковыми. XBMC автоматически ищет строки на языке, который пользователь установил в настройках локали xbmc. Пожалуйста, подумайте о том, чтобы принять мой ответ, если это было полезно. – sphere
О, ладно, я получил его сейчас за вашу помощь. Я принял ваш ответ, поскольку это было очень полезно. Спасибо!!! –