Интернационализация Appcelerator Titanium работает неправильно

Вот тот, который сводит меня с ума:

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

Одна вещь, которую я просто не могу заставить работать, - это папка/файлы i18n.

Вот что я сделал: - Создайте "Проект по умолчанию" - добавьте папку в корневой каталог "i18n" - добавьте папки "en" и "es" в "i18n" - добавьте "strings.xml" в обе эти новые папки. - добавлен:

    <?xml version="1.0" encoding="UTF-8"?>
    <resources>
       <string name="welcome_message">Welcome TEST</string>
    </resources>

в оба файла strings.xml, за исключением строк es, которые я поставил «ES Welcome TEST». - В Resources -> app.js я изменил "I am Window 1" на L('welcome_message') - Запустил приложение

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

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

-- Вот несколько скриншотов, я только что создал новый обычный (не сплавной) проект, добавил приведенный выше код и попытался использовать L('welcome_message'), но безуспешно. Я попытался установить все на новый компьютер, чтобы убедиться, что ничего не испортил на своем основном компьютере. введите здесь описание изображениявведите здесь описание изображения


person Silent    schedule 19.04.2013    source источник
comment
вы пробовали очистить и построить?   -  person mr.VVoo    schedule 19.04.2013
comment
Я пробовал это, а также пытался создать пустой проект, как упоминалось выше, добавить код, а затем запустить его в первый раз и получить те же результаты.   -  person Silent    schedule 19.04.2013


Ответы (2)


Вот ответ:

https://wiki.appcelerator.org/display/guides/Internationalization

По умолчанию ваш файл манифеста не настроен по умолчанию для разрешения локализации, ЕСЛИ вы не выбрали проект с вкладками.

Как-то глупо, если вы спросите меня.

person Silent    schedule 21.04.2013
comment
Это не сработает, даже после прохождения руководства. Я создал папку i18n, а также strings.xml и объявил L ('пароль'), он оставляет пользовательский интерфейс пустым на симуляторе для перевода. - person obaid; 22.09.2014

Для тематического плаката:

Мой новый файл string.xml:

<?xml version="1.0" encoding="UTF-8"?>
<resources>
    <string name="welcome_message">Don't Help Austin</string>
    <string name="user_agent_message">user agent set to</string>
    <string name="format_test">Your name is %s</string>
    <string name="base_ui_title">Base UI</string>
    <string name="controls_win_title">Controls</string>
    <string name="phone_win_title">Phone</string>
    <string name="platform_win_title">Platform</string>
    <string name="mashups_win_title">Mashups</string>
    <string name="ordered">Hi %1$s, my name is %2$s</string>
</resources>

Скриншот моего эксперимента без сплава:

введите здесь описание изображения

Для тех, кто хочет ответить на вопрос в теме, это возможный ответ ниже.

Моя папка i18n находится на том же уровне иерархии, что и приложение и плагины, поэтому моя папка не находится внутри папки приложения, как остальные ресурсы Alloy.

index.xml

<Alloy>
    <Window class="container">
        <Label id="label" onClick="doClick"></Label>
    </Window>
</Alloy>

index.tss

".container": {
    backgroundColor:"white"
},
"Label": {
    width: Ti.UI.SIZE,
    height: Ti.UI.SIZE,
    color: "#000",
    text: L("welcome_message")
} 

строки.xml

<?xml version="1.0" encoding="UTF-8"?>
<resources>
    <string name="welcome_message">Welcome to Kitchen Sink for Titanium</string>
    <string name="user_agent_message">user agent set to</string>
    <string name="format_test">Your name is %s</string>
    <string name="base_ui_title">Base UI</string>
    <string name="controls_win_title">Controls</string>
    <string name="phone_win_title">Phone</string>
    <string name="platform_win_title">Platform</string>
    <string name="mashups_win_title">Mashups</string>
    <string name="ordered">Hi %1$s, my name is %2$s</string>
</resources>

Когда я поместил L("welcome_message") в index.xml, это не сработало.

person Martin    schedule 19.04.2013
comment
Мне нравится ваше чувство юмора :), но ответ, который вы публикуете, не помогает мне с моей конкретной проблемой. То, что вы опубликовали, взято из многих руководств, я могу загружать проекты прямо из github, запускать их, и они тоже не работают. Это то, что я пытался сегодня вечером. Есть ли настройка в eclipse, которую мне нужно установить или, может быть, в диспетчере эмулятора? - person Silent; 20.04.2013
comment
@Martin, ты сказал, что когда я поместил L (welcome_message) в index.xml, это не сработало. Это вопрос или ответ? Потому что мне также нужно решение для него в проекте сплава, так как оно не работает. - person obaid; 22.09.2014
comment
Вы выполнили шаги, описанные в оригинальном постере? Вот что я сделал: - Создать проект по умолчанию - добавить папку в корневой каталог i18n - добавить папки en и es в i18n - добавить strings.xml в обе эти новые папки - person Martin; 22.09.2014