я работаю с локализацией для проекта C ++ & получил ссылки от «эта ссылка«
в файле «LocalizationManager.mm» он имеет метод getLocalizedString как:
std::string LocalizationManager::getLocalizedString(const std::string& key)
{
NSString *str = [NSString stringWithUTF8String: key.c_str()];
std::string s([NSLocalizedString(str, nil) UTF8String]);
return s;
}
и назовите это в .cpp файлах как:
std::string strHighscore = LocalizationManager::getInstance() -> getLocalizedString("best");
Проблема здесь в том, что по некоторым причинам он не отображал локализованные строки для японского или китайского языка (то есть пустые), а также некоторые специальные символы при использовании vienamese отсутствуют. Хотя другие языки (например, немецкий) поддерживаются нормально.
Я предполагаю, что это связано с UTF8, но я слишком новичок для такого. Все, что указывает на то, что я делаю неправильно, будет очень признательно.
Виноват,
я не смотрел на основную ошибку, которую я сделал. Позже я настроил пользовательский шрифт для локализованной строки, которая не поддерживала некоторые из юникодов, включая ja-zh-vi и другие.
Извиняюсь!
нота:
Сейчас я использую шрифт «simsun.ttc», который, кажется, поддерживает большинство юникодов.
Других решений пока нет …