2013-06-26 77 views
3

我的應用正在本地化,我們關注方言。 (即西班牙語和西班牙語在peurto rico之間的區別)我注意到,只是更改區域不會將通知發送到會觸發本地化的應用程序。只有更改語言纔會觸發此通知。強制更改語言通知iOS

在我的應用程序委託中,我想檢查該區域在我的applicationDidBecomeActive方法中是否發生了變化,如果它有,我想推動iOS會在語言發生變化時推送的通知。那可能嗎?

+0

一個語義技術性:你指的是一個_change notification_通過'NSNotificationCenter',不是一個_push notification_(它可以是本地的或遠程的,但是與實習生不同如Objective-C通知系統),您希望「向通知中心發送通知」。 – bshirley

+0

通知,你的意思是NSCurrentLocaleDidChangeNotification? – Marco

+0

是的,我想POST POST NSCurrentLocaleDidChangeNotification – erik

回答

3

每當您的應用程序返回到前臺(而不是當它變爲活動狀態時),獲取當前語言環境。將最新的區域設置與以前的區域設置進行比較。如果新的和以前的區域設置與您的區別不夠,請發佈通知。

示例 - 從西班牙到墨西哥應將語言環境從es_ES更改爲es_MX

編輯

要發佈的通知,你可以這樣做:

[[NSNotificationCenter defaultCenter] postNotificationName:NSCurrentLocaleDidChangeNotification object:nil]; 
+0

我知道這..我的問題是我如何張貼通知 – erik

+0

看到我更新的答案。順便說一句 - 你的問題沒有說清楚你的問題是關於如何發佈通知。 – rmaddy

+0

在iOS上注意,您需要NSNotificationCenter而不是UINotificationCenter。 –

3

以編程方式發佈通知:

[[NSNotificationCenter defaultCenter] postNotificationName:NSCurrentLocaleDidChangeNotification object:self userInfo:nil]; 
+0

問題這篇文章區域變化或語言變化..我想要做的事實際上是強制語言變化通知,即使語言沒有變化 – erik

+0

似乎不工作..當我改變我的語言,回來的應用程序我的本地化正在射擊與正確的方言..但是,如果我只是從說美國地區改爲peurto rico ..並回到應用程序它不會更改我的本地化字符串 – erik