2015-10-20 2 views
0

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

ответ

0

Когда пользователь нажимает кнопку, я хочу изменить всю локализацию своего приложения.

Я достиг этого, но для этого я должен был реализовать парадигму 1) установленного приложения к новым языкам прив 2) запустить крохотный помощник приложения 3) бросить курить основное приложением 4) приложение запускается снова в новом языков прив (по вспомогательное приложение).

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

Что касается тех, которые, как только ваше приложение запускается, предпочтение lang pref, которое оно получает от настроек по умолчанию, кэшируется в ОС, и ничего, что вы можете сделать, изменит его ... пока ваше приложение не возобновит работу.

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

Но если вы согласны с тем, что 80 процентов вещей в вашем приложении динамически локализовано, когда пользователь нажимает кнопку, держите googling, пока не найдёте нить в SO здесь, я говорю о ... ключевых словах может быть, «динамическая, локализация, что-то», и если вы действительно не можете найти ее так, потому что я ее где-то помещал в закладки, но, возможно, на другой загрузочный диск.

Смежные вопросы