2015-02-10 3 views
2

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

У нас есть параметризация, чтобы поддерживать эту персонализацию в приложении, но у меня есть проблема с локализацией. Я хотел бы иметь разную группу локализованных строк для каждой цели на разных языках, потому что, возможно, в одной цели в представлении должны быть показаны «Велосипедные станции», но в другом «Автостанциях» (на соответствующем языке).

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

Я пытался определенных два различных Localizable файлов и Asign каждый из них уникальной мишени, как вы видите на изображение ниже

Localization by target

Но когда я открываю вторую мишень, любая локализуемую строка признано

Знаете ли вы, что может быть моей проблемой или как я могу определить различные локализованные файлы на нескольких языках для каждой цели?

Заранее спасибо за помощь :)

ответ

3

У меня есть Translation класс, где у меня есть метод forKey:NSString.

NSString *text = NSLocalizedStringFromTable(key, @"Localizable_base", nil); 
text = NSLocalizedStringWithDefaultValue(key, 
             @"Localizable_target", 
             [NSBundle mainBundle], 
             text, 
             nil); 
if(!text) 
    text = key; 

Первое получение значения по умолчанию. Затем передайте его как значение по умолчанию для целевого объекта. Если у вас есть строки, которые не указаны в базе, сначала получите целевое значение, проверьте, есть ли значение, а если нет, установите значение text в значение по умолчанию.

вы также можете взглянуть на мой старый вопрос, который должен был иметь дело с различными языками для целей: Allow only specific translations for different schemes/targets

+0

Спасибо так много! :) Ваше решение отлично подходит для моего дела – Thais