Swift iOS macOS 如何 Localize StoryBoard,StoryBoard 本地化,添加多語言支持,基於 String

Swift iOS macOS 如何 Localize StoryBoard,StoryBoard 本地化,添加多語言支持,基於 String

本地化主要包含兩個部分:代碼中文本的本地化StoryBoard 中文本的本地化
iOSmacOS 是一樣的
這裏只介紹 StoryBoard 的本地化,代碼中文本的本地化 請參閱這篇文章的前半部分,懶得說了

Internationalizing Your iOS App: Getting Started

前言:StoryBoard 的本地化分爲兩種方式

一種是基於一個 StoryBoard 文件,摘取其中的字符串生成不同語言的 .string 文件,來實現多語言支持
一種是基於多個 StoryBoard 文件,每個語言都對應一個文件,這樣做很麻煩,只要改一處就需要改多個文件

所以我們只說基於多個 .string 文件的本地化操作

一、項目概覽

有這樣一個項目,結構是這樣的,目前沒有實現多語言支持,也就是本文中所謂的 本地化 Localization,這些詞都是一個意思。

在這裏插入圖片描述

二、給項目添加多語言支持

點擊左側項目,選擇 [Project] 點選該項目,切到 [Info] 標籤,點擊下面的 [Localizations] 添加你需要支持的語言,如圖:

在這裏插入圖片描述

此時點選左側項目欄中的 main.storyboard 文件,會看到右側會有多種語言支持,點選你需要支持的語言。
再點開 main.storyboard 右側的箭頭時會看到下面多出兩個文件 Main.string(English) Main.string(Chinese_Simple),這裏面就包含了該 storybaord 文件中所有的字符串。
如圖:

其實你還可以看到 Localization.string 文件下面也有兩個語言文件,這個是用於程序代碼中使用的字符串,具體查看開篇提到的那個教程文章

在這裏插入圖片描述

三、翻譯對應的文本

打開上面生成的文件,會看到如下的內容,進行翻譯即可

在這裏插入圖片描述

四、編譯調試不同語言下的呈現狀態

我們完成了多語言支持,那麼如何調試呢? xcode 有相應的功能,來設置調試時的系統語言來,來實現調試應用在不同語言狀態下的狀態。

[點擊項目名] 選擇 [Edit Schema]

在這裏插入圖片描述

在這裏插入圖片描述

然後 [Run] - [Info] - [Language] 選擇語言即可,這樣再運行,就會顯示對應語言的狀態了

在這裏插入圖片描述
在這裏插入圖片描述

五、效果

以下是我這個應用在實現多語言支持後的效果: 中文英文
在這裏插入圖片描述
在這裏插入圖片描述

六、重要:修改 StoryBoard 之後如何添加新詞

前面做的已經很好,但如果你修改了 StoryBoard ,添加或刪除了部分字符串後,如何修改呢?
對應的 .string 中的字符串並不會跟着變,新加的字符串也不會自己出現在 .string 文件中。

此時我們就需要手動進行一下一系列操作,來把新的字符串添加到對應的語言中,讓我們開始:

1. 導出最新版的字符串

點擊 項目名,選擇 [Editor] 菜單中的 [Export for Localization] 即可將當前 StroyBoardInfo.plist 對應的字符串都導出,然後選擇保存位置
在這裏插入圖片描述
在這裏插入圖片描述

2. 修改對應的翻譯文件

打開導出的文件夾看到如下結構,主要是修改其中的 xxx.xcloc/Localized Contents/xxx.xliff 文件,裏面包含所有需要翻譯的字符串

在這裏插入圖片描述

打開看一下

在這裏插入圖片描述

裏面 <source> 標籤中的文本是原文本, <target> 中的文本是翻譯後的文本

在這裏插入圖片描述
對於新添加的一些東西,是沒有<target> 這個標籤的,需要手動添加內容

在這裏插入圖片描述

爲了方便查找哪些沒有翻譯,Command + F 搜索正則 </source>\n *<note>,就可以很容易定位到沒有翻譯的地方了,添加相應內容即可

在這裏插入圖片描述

3. 導入修改後的翻譯文件

點擊 項目名,選擇 [Editor] 菜單中的 [Import Localization],選擇你剛纔修改的文件目錄即可導入

在這裏插入圖片描述

導入後會看到 .string 裏面已經添加了對應的翻譯條目

在這裏插入圖片描述

如果有些內容沒有翻譯,它會提示你哪些沒有被翻譯,以如下的方式展示,再根據指示回去修改即可

在這裏插入圖片描述

在這裏插入圖片描述
在這裏插入圖片描述

七、結

截圖累死我了,不留下個贊就走,不太合適吧 😄

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章