欧美日韩卡一卡二_欧美国产日韩一二三区_99久久国产综合精品色伊_国产精品国产三级国产aⅴ原创 _懂色av中文字幕一区二区三区 _欧洲亚洲精品在线_色婷婷av一区二区三区大白胸_丁香婷婷综合网_成人h精品动漫一区二区三区_综合久久一区二区三区_精品一区免费av_99久久精品情趣_色综合久久久久综合体_久久久久国产精品麻豆ai换脸_婷婷六月综合亚洲_国产一区在线不卡

15321250321
010-86462584

APP開發 > APP學院 > 手機程序開發

手機APP開發國際化

2022-05-29

?本文反過來試圖強調手機APP開發國際化部分的主要問題,該部分一方面對最終用戶影響最大,另一方面對日常編碼影響很大——界面翻譯。盡管在本文中我們將分析如何在手機APP開發中實現國際化,但提供的大多數問題和可能的解決方案都可以手機APP于不同的開發環境。

按鍵命名

開發多語言手機APP時面臨的首要難題之一是為鍵選擇最合適的命名約定,這將代表要翻譯的文本。

有一種誘惑是要么保持鍵短,從而在需要參考翻譯信息時減少打字量,要么保持它們長而深的嵌套,從而具有明確定義的結構。然而,做空通常不是一個好主意。盡管人們不必記住某些翻譯的長路徑,但它通常會導致看起來笨拙的長鍵名,這必須支持所需的區分。考慮以下稍微夸張的示例:

en-GB: dashboard_main_table_headers_first_name: First name

很容易被分割成

en-GB: dashboard: main_table_headers: first_name: First name

另一方面,過于嵌套的鍵可能會變得曲折且難以記憶,實際上許多級別可以很容易地省略而不會引入歧義,例如

en-GB: dashboard show: view: main_section: table: headers: first_name: First name

通過去除一些不必要的關卡并將其中的一些關卡合二為一,我們可以很容易地實現合理的解決方案。

en-GB: dashboard: show: table_headers: first_name: First name

關于密鑰創建要問的第二個問題是密鑰中實際包含的內容。答案可能是:“只要是直觀的、明確的,并且可以讓您高效地查找和編寫翻譯”。這種結構的示例可能如下所示:

例如

en-GB: customer: products: show: label_price: Price

最后一級的命名應該是一致的,每次我們必須這樣做的時候不要過多地考慮如何命名特定的鍵。顯然,我們可能需要在翻譯中添加一些公共分支,以存儲在命名空間等之間共享的鍵。仍然具有良好定義的命名約定肯定會提高依賴于翻譯的繁重手機APP的效率。

翻譯文件結構

在小型手機APP中,沒有必要準備比每種語言一個更多的語言環境文件。盡管如此,隨著手機APP的增長,翻譯文件變得難以維護和管理——因此,經過深思熟慮的語言環境文件樹可能是避免這種問題之王的一種方法。作為額外的獎勵,為同一手機APP的特定模塊分發翻譯包會更容易。

翻譯文件結構的一些示例

Module name based ..yml ..yml #Shared

例如

invoicing admin.en-GB.yml admin.da-DK.yml admin.en-GB.yml admin.da-DK.yml
Namespace / Role name based ..yml ..yml #Shared

或者

admin invoicing.en-GB.yml invoicing.da-DK.yml invoicing.en-GB.yml invoicing.da-DK.yml
l ..yml ..yml #Shared

等等……您甚至可以將語言包放在不同的目錄中。在大多數情況下,對于大多數情況來說,一層嵌套感覺就足夠了。這取決于您選擇哪種方法,并且最適合給定的手機APP。

擺脫未使用的翻譯

持續的開發、升級、重構等通常會導致翻譯文件中出現孤立的翻譯分支,除非非常注意保持一切潮流。無論如何,有時我們想檢查我們的翻譯文件是否有點太大。第一個想法是掃描源代碼中的鍵并將其與語言環境文件中的任何內容進行比較——之后,只需刪除代碼中未提及的所有鍵。這實際上有兩個缺點。

第一個是如果使用鍵繼承或者某些鍵不是從主手機APP代碼而是從某些庫等調用的。這顯然會導致刪除正在使用的鍵。第二種情況產生相同的效果,并且是由調用鍵時使用字符串插值引起的。

為了解決這個問題,我們可能會嘗試啟用密鑰記錄并讓手機APP運行(最好在生產環境中)。啟用此機制并運行完整的測試套件也會有很大幫助(取決于測試覆蓋率)。這種通過掃描源代碼增強的方法應該為我們提供幾乎(如果不是全部)在手機APP中使用的完整密鑰,我們可以將其與龐大的翻譯文件進行比較。

用于記錄翻譯鍵的簡單代碼

module I18n  module Registry    protected    def lookup(locale, key, scope = \[], options = {})      @log ||= Logger.new(File.join(Rails.root, 'log', 'i18n_registry.log'))      @log.info key      super    end  endendI18n::Backend::Simple.send :include, I18n::Registry

尋找缺失的翻譯

就像查找未使用的翻譯一樣,我們可以通過某種注冊表來增加源代碼掃描。這次我們可以將我們的解決方案基于 Rails I18n 提供的 exception_handler 鉤子

I18n.exception_handler = lambda do |exception, locale, key, options|  @log ||= Logger.new(File.join(Rails.root, 'log', 'missing_translations.log'))  case exception    when I18n::MissingTranslationData      @log.info key      options\[:rescue_format] == :html ? exception.html_message : exception.message    end  else    raise exception  endend

添加新翻譯

在開發過程中向翻譯文件添加翻譯是最沒有生產力的任務之一。在使用兩種或多種語言的手機APP中尤其如此。但是,使用 exception_handler 的強大功能,我們可以自動化這個密鑰創建過程。

當第一次調用缺少的翻譯鍵時,這可能會在每種語言的翻譯文件中生成該鍵,根據鍵名自動創建翻譯等。我們甚至可以調用一些服務,它會自動將通用翻譯大致翻譯成不同的語言. 實際上提供了一個 gem 允許這樣做,所以不要在此處粘貼代碼,而是查看它的 github 存儲庫。

委派翻譯工作

除非團隊有一些專門的翻譯,否則將翻譯委托給一些外部資源是很常見的,比如客戶、客戶的員工、外包翻譯等。在所有情況下,都必須開發某種翻譯過程的方法。

直接編輯文件 可能會有些尷尬且不易處理,尤其是對于不熟悉翻譯文件語法的翻譯人員。小的縮進變化或一些特殊的符號移除甚至會導致手機APP無法啟動。這是最便宜的開始方式。

開發 專門的翻譯界面 可能很誘人,但需要深思熟慮。如果外部服務不能提供例如所需的訪問控制,則可能值得在內部開發一些東西。在這種情況下 ,可以使用37signals 的 Tolk 作為基礎。瀏覽 github 以獲取其他共享解決方案,以免從頭開始重新發明輪子。

在大多數情況下,基于SaaS的解決方案 似乎是最好的解決方案——旨在與翻譯團隊合作,可以大大減少問題的數量、花費的時間并促進本地化手機APP的過程。對于翻譯 rails 手機APP,目前有兩個主要參與者:rails-only  LocaleApp 和更通用 的 WebTranslateIt。請查看它們的功能并確定最適合您的功能。

下一步

手機APP國際化的許多方面在本文中甚至都沒有涉及——它涵蓋了在手機APP開發期間處理翻譯的方面——然而,這是所有未來 i18n 相關任務的基礎。因此,選擇最適合您的方法,讓您的手機APP使用另一種語言。

客服QQ:121446412 聯系電話:15321250321

京ICP備17026149號-1

版權所有@2011-2022 北京天品互聯科技有限公司 公司地址:北京市海淀區上地信息路甲28號B座(二層)02D室-010號

欧美日韩卡一卡二_欧美国产日韩一二三区_99久久国产综合精品色伊_国产精品国产三级国产aⅴ原创 _懂色av中文字幕一区二区三区 _欧洲亚洲精品在线_色婷婷av一区二区三区大白胸_丁香婷婷综合网_成人h精品动漫一区二区三区_综合久久一区二区三区_精品一区免费av_99久久精品情趣_色综合久久久久综合体_久久久久国产精品麻豆ai换脸_婷婷六月综合亚洲_国产一区在线不卡

      欧美日韩亚洲高清一区二区| 九色综合狠狠综合久久| 欧美日韩一区二区三区高清 | 日韩**一区毛片| 香蕉久久夜色精品国产使用方法| 亚洲日本乱码在线观看| 亚洲精品亚洲人成人网| 一二三区精品福利视频| 亚洲一区二区三区在线| 日本成人在线不卡视频| 国产麻豆精品theporn| 国产成人精品一区二区三区四区 | 不卡一卡二卡三乱码免费网站| 波多野结衣欧美| 国产精品对白刺激久久久| 国产一区二区三区高清| 日韩欧美精品在线不卡| 正在播放久久| 欧美日韩视频在线一区二区| 欧美一个色资源| 中文一区在线播放| 亚洲自拍另类综合| 黄页网站大全一区二区| 91视频观看免费| 欧美一区二区视频在线| 欧美三级三级三级| 久久久亚洲国产美女国产盗摄| 国产精品乱码人人做人人爱| 亚洲成人www| 国产一区亚洲一区| 国产亚洲二区| 色婷婷综合久久久久中文| 日韩一区二区三区观看| 国产精品视频第一区| 水野朝阳av一区二区三区| 国产成人精品免费一区二区| 黄色99视频| 欧美日本一道本| 国产精品视频在线看| 蜜桃久久久久久| 成人自拍网站| 欧美亚洲尤物久久| 国产精品欧美一级免费| 日韩在线卡一卡二| 9人人澡人人爽人人精品| 欧美日韩国产综合视频在线| 欧美日韩国产三级| 国产精品久久三| 久色婷婷小香蕉久久| 91丨porny丨首页| 色哟哟亚洲精品| 国产欧美精品日韩区二区麻豆天美| 午夜久久久影院| 91丨九色丨尤物| 在线精品视频免费观看| 国产精品盗摄一区二区三区| 韩国成人精品a∨在线观看| 动漫一区二区在线| 欧美亚日韩国产aⅴ精品中极品| 国产婷婷色一区二区三区四区| 奇米一区二区三区| www.av一区视频| 欧美高清hd18日本| 亚洲成av人片在线| 国产精品久久久久久久小唯西川 | 日本不卡不码高清免费观看| 国产欧美日韩视频一区二区三区| 欧美日本高清视频在线观看| 亚洲午夜精品一区二区三区他趣| 91成人理论电影| 91精品视频网| 首页国产欧美日韩丝袜| 精品国产免费一区二区三区| 日韩精品一区二区三区四区视频 | 99九九视频| 欧美一区二区三区色| 日韩精品视频网| 欧美日本韩国在线| 日本一区二区综合亚洲| 国产成人激情av| 欧美日韩色一区| 日本成人在线电影网| 欧美日韩综合精品| 中文字幕第一区综合| 成人午夜电影久久影院| 欧美麻豆精品久久久久久| 婷婷六月综合网| 欧美另类网站| 中文字幕一区二区三区不卡在线| 成人免费视频播放| 欧美精品aⅴ在线视频| 免费在线观看视频一区| 在线成人性视频| 亚洲综合激情另类小说区| 久久精品人成| 亚洲日本一区二区三区| 国产在线精品一区二区中文 | 久久精品亚洲乱码伦伦中文| 国产91丝袜在线观看| 欧美色视频在线观看| 免费亚洲电影在线| 色94色欧美sute亚洲线路一ni | 9191精品国产综合久久久久久| 日韩电影在线看| 一本久道久久综合狠狠爱亚洲精品| 亚洲女与黑人做爰| 美女精品国产| 亚洲午夜国产一区99re久久| 亚洲精品一品区二品区三品区| 一区二区三区不卡视频在线观看 | 精品欧美一区二区三区精品久久| 大美女一区二区三区| 5566中文字幕一区二区电影| 国产一区二区电影| 日韩亚洲欧美一区| 成人av综合一区| 久久久久久久综合| yy111111少妇影院日韩夜片 | 在线精品视频免费观看| 欧美国产精品一区二区三区| 欧美狂野另类xxxxoooo| 国产欧美中文在线| 日韩国产精品久久| 在线观看日韩毛片| 韩国成人福利片在线播放| 欧美日韩久久久| 国产高清一区日本| 欧美精品一区二区三区蜜桃| 超碰97人人人人人蜜桃| 亚洲欧美日韩国产一区二区三区 | 丝袜美腿亚洲一区| 欧美四级电影在线观看| 国产高清亚洲一区| 国产欧美一区二区精品性| 精品国产电影| 日韩电影免费一区| 日韩一级高清毛片| 国产亚洲第一区| 日本不卡免费在线视频| 日韩欧美亚洲国产精品字幕久久久| 91超碰rencao97精品| 一区二区三区欧美| 欧美精品一二三四| 国产91精品入口17c| 亚洲成人av资源| 欧美一区午夜精品| 国产精品青青草| 日韩综合在线视频| 精品久久久网站| 精品一区二区日本| 日韩影院免费视频| 精品国产髙清在线看国产毛片| 久久99国产精品99久久| 久久精品国产精品亚洲精品| 久久久久久亚洲综合影院红桃| 视频一区不卡| 成人激情校园春色| 亚洲国产人成综合网站| 日韩欧美久久久| 亚洲国产激情一区二区三区| 成人精品电影在线观看| 亚洲在线一区二区三区| 欧美tickling网站挠脚心| 欧洲一区二区在线观看| 国产69精品久久久久毛片| 亚洲免费在线播放| 欧美一区二区三区日韩视频| 欧美性xxxx69| 成人免费高清视频| 亚洲无线码一区二区三区| 日韩欧美一区二区三区在线| 色之综合天天综合色天天棕色| 成人免费毛片嘿嘿连载视频| 亚洲v中文字幕| 国产日韩精品一区二区浪潮av| 日本道精品一区二区三区| 国产精品一区在线播放| 国产精品996| 五月婷婷激情综合网| 欧美国产精品劲爆| 777午夜精品免费视频| 午夜一区二区三视频在线观看| 99re热这里只有精品视频| 久久电影国产免费久久电影| 亚洲欧洲综合另类在线| 久久先锋影音av| 欧美人伦禁忌dvd放荡欲情| 免费看成人片| 成人9ⅰ免费影视网站| 国产精品白丝jk白祙喷水网站| 午夜av一区二区三区| 日韩码欧中文字| 国产日韩精品一区二区浪潮av| 91麻豆精品国产自产在线| 一本色道久久综合亚洲精品按摩| 精品欧美一区二区三区久久久| 99久久精品情趣| 国产福利一区二区三区视频在线 | 91在线观看地址| 国产乱码一区二区三区|
      收縮
      • 15321250321