1. 程式人生 > >android國際化(多語言,圖片)

android國際化(多語言,圖片)

1.  很大程度上,為什麼我們能如此方便的實現國際化、解析度匹配等? 

    主要就是得益於 Android 中這種獨特的資源管理方式。程式設計師的程式碼可以不直接和資源發生關係。Android 中,我們通常通過 R 檔案提供的索引來間接的引用某一個資源。而如何維護資源索引和真正的資源之間的關係,這個活,卻是 Android 系統來做的。 

    這裡面就可以大作文章了不是麼? 

    我說過,最瞭解使用者手機的,不是使用者也不是程式設計師,而是Android作業系統。它最瞭解使用者當前使用的是什麼語言,最瞭解使用者當前手機的解析度是多少,瞭解電量,瞭解記憶體情況...等等。 

    既然你對自個的情況這麼瞭解,為什麼不自己把所有能完成的事情都做了?不要麻煩程式設計師好吧?好的,所以 Android 在這方面做得非常優秀。 


    基於這個角度,我們要轉換的觀念為:有可能,R 檔案中的索引,並非是和資源一對一的。例如我們以前認為它就一定是對應了一張圖片,對應了一個字串,對應了一個佈局檔案。 

    而很可能,Android 其實會根據使用者當前使用的環境對應幾套方案:例如本文所講的主題,從國際化角度,可能對應中文環境方案,英文環境方案?那麼,這時候 R 檔案對應的這個資源便不確定起來,當我們通過 R 檔案呼叫一個圖片資源顯示在視窗上時,Android 作業系統會自動根據使用者當前的環境,而選用最合適的圖片(這個挑選過程卻是透明的)。 

   程式設計師可以干預的是:英文環境到底對應哪套方案?中文環境對應到底哪套方案? 


   OK。這就簡單了。 

2. Android 中要實現國際化比較簡單。 

   字串國際化:只要在 res 資料夾下新建對應語言的 values 資料夾就好了, 

   如,英語環境下的,資料夾命名為:values-en 

   美國英文環境:values-en-rUS 

   中文環境為:values-zh 

   大陸地區中文環境: values-zh-cn

   在 eclipse 下新建 Android 專案時,會在 res 目錄下自動建立一個預設語言環境的資料夾 : values 

   當某一個資源沒有在語言環境的對應的資源集合中找到時,就會使用 values 下的資源。 

   若某一個語言環境沒有在專案中定義語言環境,那麼也會使用 values 下的資源。 


3. 圖片國際化 

       同理。 

       在 res 下新建 drawable-zh 資料夾,存放中文環境下的圖片 

       新建 drawable-en 作為英語環境下的圖片 

       在 eclipse 下新建 Android 專案時,會在 res 目錄下自動建立三個預設語言環境的資料夾: 

       drawable-hdpi 

       drawable-ldpi 

        drawable-mdpi 

        分別用於存放高、中。低解析度的圖片。Android 系統會根據手機的解析度,而自動從不同的對應的某一個資料夾下去載入圖片。 

        同樣,它們也可以國際化,命名規則如: 

        drawable-zh-hdpi 

        drawable-en-ldpi 

        drawable-en-rUS-mdpi 

      使用。在 XML 中需要使用到圖片的地方用表示式: @drawable/icon 

      程式碼中使用:R.drawable.icon。因為圖片資源同樣也會在 R 檔案中生成一個索引

==================================================================

Android多國語言資料夾檔案彙總如下:

中文(中國):values-zh-rCN
中文(臺灣):values-zh-rTW
中文(香港):values-zh-rHK
英語(美國):values-en-rUS
英語(英國):values-en-rGB
英文(澳大利亞):values-en-rAU
英文(加拿大):values-en-rCA
英文(愛爾蘭):values-en-rIE

英文(印度):values-en-rIN
英文(紐西蘭):values-en-rNZ
英文(新加坡):values-en-rSG
英文(南非):values-en-rZA

阿拉伯文(埃及):values-ar-rEG
阿拉伯文(以色列):values-ar-rIL
保加利亞文:  values-bg-rBG
加泰羅尼亞文:values-ca-rES
捷克文:values-cs-rCZ
丹麥文:values-da-rDK
德文(奧地利):values-de-rAT
德文(瑞士):values-de-rCH
德文(德國):values-de-rDE
德文(列支敦斯登):values-de-rLI
希臘文:values-el-rGR
西班牙文(西班牙):values-es-rES
西班牙文(美國):values-es-rUS
芬蘭文(芬蘭):values-fi-rFI
法文(比利時):values-fr-rBE
法文(加拿大):values-fr-rCA
法文(瑞士):values-fr-rCH
法文(法國):values-fr-rFR
希伯來文:values-iw-rIL
印地文:values-hi-rIN
克羅里亞文:values-hr-rHR
匈牙利文:values-hu-rHU
印度尼西亞文:values-in-rID
義大利文(瑞士):values-it-rCH
義大利文(義大利):values-it-rIT
日文:values-ja-rJP
韓文:values-ko-rKR
立陶宛文:valueslt-rLT
拉脫維亞文:values-lv-rLV
挪威博克馬爾文:values-nb-rNO
荷蘭文(比利時):values-nl-BE
荷蘭文(荷蘭):values-nl-rNL
波蘭文:values-pl-rPL
葡萄牙文(巴西):values-pt-rBR
葡萄牙文(葡萄牙):values-pt-rPT
羅馬尼亞文:values-ro-rRO
俄文:values-ru-rRU
斯洛伐克文:values-sk-rSK
斯洛維尼亞文:values-sl-rSI
塞爾維亞文:values-sr-rRS
瑞典文:values-sv-rSE
泰文:values-th-rTH
塔加洛語:values-tl-rPH
土耳其文:values--r-rTR
烏克蘭文:values-uk-rUA
越南文:values-vi-rVN

相關推薦

android國際化語言,圖片

1.  很大程度上,為什麼我們能如此方便的實現國際化、解析度匹配等?     主要就是得益於 Android 中這種獨特的資源管理方式。程式設計師的程式碼可以不直接和資源發生關係。Android 中,我們通常通過 R 檔案提供的索引來間接的引用某一個資源。而如何維護資源索引

android國際化語言

1.  很大程度上,為什麼我們能如此方便的實現國際化、解析度匹配等?     主要就是得益於 Android 中這種獨特的資源管理方式。程式設計師的程式碼可以不直接和資源發生關係。Android 中,我們通常通過 R 檔案提供的索引來間接的引用某一個資源。而如何維護資源索引

利用Spring進行專案國際化語言

1.Spring國際化概述1)國際化基本規則國際化資訊”也稱為“本地化資訊”,一般需要兩個條件才可以確定一個特定型別的本地化資訊,它們分別是“語言型別”和“國家/地區的型別”。如中文字地化資訊既有中國大陸地區的中文,又有中國臺灣、中國香港地區的中文,還有新加坡地區的中文。Ja

C# Winform下一個熱插拔的MIS/MRP/ERP框架語言方案

文件加載 全局 查詢 分享 技術 變量 支持 對象 style 個別時候,我們需要一種多語種切換方案。   我的想方案是這樣的: 1、使用文本文本存儲多語言元素,應用程序啟動時加載到內存表中; 2、應用程序啟動時從配置文件加載語種定義; 3、所有窗體繼承自一個Base

Android 國際化語言切換

前言 android的國際化很簡單,大家都知道建立對應國家編碼的values資料夾就好啦。可是很多人不知道如何手動切換app的語言,而不是隻能跟隨系統語言變化,下面就介紹一下啦! 直接貼程式碼吧 /** * 設定當前語言 *

3分鐘實現iOS語言本地化/國際化圖文詳解

返回 sch 信息 con ren obj end xib standard 前言 語言本地化,又叫做語言國際化。 是指根據用戶操作系統的語言設置,自動將應用程序的語言設置為和用戶操作系統語言一致的語言。 往往一些應用程序需要提供給多個國家的人群使用,或者一個國家有多種

圖片中畫框C語言實現

在做視覺分析過程中,經常會進行影象格式的轉換以及在原圖上標框,為了更加清晰的認識影象格式,在這裡手動實現了根據YUV資料和RGB資料進行標框的操作。在效能上不及直接使用opencv + cuda, 但是可以更加直觀的理解整個原理。 // draw line // 傳入imgData

Android app 移動推送遇到的問題問題集合

       關於移動推送這塊,我主要是應用了極光推送跟阿里的移動推送,阿里這塊遇到的問題就是配置檔案這塊, 問題1:碰到一個資源重複的問題,是出現在應用級的build.gradle上面的資源包引用重複, 問題2:遇到的難點就是:無法例項化接收器

Android自動提示文字框改為其他分隔——次提示

要想改為其他的分隔符需再寫個類 SemicolonTokenizer類 package com.example.android_06; import android.text.SpannableString; import android.text.Spanned; import andr

語言網站如何實現網站的語言版本?

多語言網站,顧名思義就是能夠以多種語言(而不是單種語言)為使用者提供資訊服務,讓使用不同語言的使用者都能夠從同個網站獲得內容相同的資訊。多語言網站實現方案 1,靜態:就是為每種語言分別準備一套頁面檔案,要麼通過檔案字尾名來區分不同語言,要麼通過子目錄來區分不同語言。例如對於首頁檔案index_en.htm提

Jupyter ~ 像寫文章般的 Coding 附:同一個ipynb檔案,執行語言程式碼

前面用了好久Notebook來互動式程式設計了,這次說說幾個其他的選項: Notebook Markdown 這次選Markdown模式(關於Markdown基礎可以看之前寫的Markdown Base) 和程式碼一樣,Shift+回車就可以預覽了,怎麼樣是不是很酷的感覺? Jupyter NBConv

android 登入,傳送等待ProgressDialog執行緒

常常需要在登入,傳送或者其他時候需要等待網路,為了增加使用者體驗,這裡使用了ProgressDialog 下面直接放程式碼 ProgressDialog dialog;//新建一個ProgressDialog protected void onCreate(Bun

MapReduce 2.0程式設計實踐涉及語言程式設計

         Hadoop提供了三種程式設計方式:Java(最原始的方式、Hadoop Streaming(支援多語言)以及Hadoop Pipes(支援C/C++)。Java程式設計介面是所有程式設計方式的基礎。不同的程式設計介面只是暴露給使用者的形式不同而已,內部執

玩轉Android---UI篇---CheckBox選按鈕

原址:http://hualang.iteye.com/category/143855 多選按鈕CheckBox的可以實現多項選擇,我們可以現在佈局檔案中定義多選按鈕,然後對每一個多選按鈕進行事件監聽 setOnCheckedChangeListener,通過isC

Android呼叫so庫c語言編寫 Codeblocks+adt-win-x86+ndk-r9c

Android呼叫so庫, so庫是c語言編寫, 在linux 64位系統+ndk(32位)生成 lib*.so (32位) 1. 所需軟體環境: 1)so庫開發環境 作業系統: Redhat Server 6.3  x86_64 編譯軟體:Code::Blocks And

Android樣式的抽取使用與國際化中英雙語

今天我們來完成一箇中英雙語UI介面的設計,並把常用的一些樣式抽取出來使用,話不多說,上圖: 下面具體講解一下實現過程。 1、我們在新建的專案中的res目錄下新建2個資料夾,values-zh-rCN、values-en-rUS

Android IPC簡介之程序模式初識

前言 IPC是 Inter-Process Communication 的縮寫,含義為 程序間通訊 或者跨程序通訊,是指兩個程序之間進行資料交換的過程。 執行緒vs程序 執行緒: 執行緒是CPU排程的最小單元,同時執行緒是一種有限的系統資源。

Android圖表控制元件MPAndroidChart——曲線圖LineChart條曲線動態新增資料

發現最新的MPAndroidChart和以前版本的使用有一些差距,就寫下了現在新版的使用方法相關文章:一.效果圖一條曲線動態新增資料(X軸為當前時間)多條曲線線動態新增資料(X軸為當前時間)二.實現效果1.X軸為當前時間,只需要Y軸資料即可2.X軸的值為字串,而Entry的構

縮圖滑鼠經過放大Element表格迴圈輸出圖片

1.程式碼: <template> <el-popover placement="left" ti

二十四進制編碼串轉換為32位無符號整數C語言實現

bool while open 參數錯誤 hint div 第一個字符 bsp opened typedef int BOOL; #define TRUE 1; #define FALSE 0; #define UINT_MAX 0xffffffff