2012-07-31 47 views
-2

Hy ...我有一個webview組件加載資源文件夾下的本地html文件,工作完美。根據語言在webview中加載本地html

現在我想翻譯mi app,並且我需要webview根據手機語言加載翻譯的html文件。

我該怎麼做?

非常感謝!!!!

我的代碼...

package com.altaguia.difuntos; 

import android.app.Activity; 
import android.os.Bundle; 
import android.view.View; 
import android.webkit.WebSettings; 
import android.webkit.WebSettings.RenderPriority; 
import android.webkit.WebView; 

public class AcercadeActivity extends Activity { 



    public void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.acercade); 

     WebView myWebView = (WebView) findViewById(R.id.webView1); 
     myWebView.getSettings().setRenderPriority(RenderPriority.HIGH); 
     myWebView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE); 
     myWebView.loadUrl("file:///android_asset/acercade.html"); 

    } 

    public void backBTN(View v) 
    { 
     finish(); 
    } 


} 

回答

1

使用Locale找到設備的語言,然後加載相應的HTML文件:

String lang = Locale.getDefault().getLanguage(); 
String filename = "acercade.html"; 
if (lang.equals("fr")) { 
    filename = "acercade.fr.html"; 
} 
myWebView.loadUrl("file:///android_asset/" + filename); 
+0

感謝chiuki !!! – 6r0pius 2012-07-31 17:57:37

+0

關鍵是getLanguage()可以返回一個空字符串。即使這種情況下,這可能會驅動到錯誤的HTML文件。所以在這種情況下,我會建議使用getISO3Language()。 – hornetbzz 2012-09-12 16:39:50

0

使用PHP。 選擇語言並在GET或POST中將其作爲參數傳遞。 將它傳遞給php文件。在php文件中創建一個條件包含。

if ($_GET['language']=="EN") include "indexEN.php"; 
else include index.php; 

在特定文件中展開翻譯,並在條件中驗證時包含它們。 如果您將有許多翻譯,然後使用開關/大小寫,而不是IF。

如果將使用GET形式,則URL看起來像這樣:

www.webpage.com/index.php?language=EN 
+0

感謝您的回答,但我在android和編程方面非常新,以至於我不理解你的解決方案。你能不能像我一樣愚蠢地向我解釋一下?大聲笑..... 我發佈了我的代碼... 非常感謝! – 6r0pius 2012-07-31 14:12:11

+0

是的。現在你發佈了你的代碼,現在很明顯Q是關於android的。您的標籤和初始描述根本沒有提及這個事實。 – mnmnc 2012-07-31 14:17:26

+0

我真的很抱歉,我沒有意識到這一點。不管怎麼說,還是要謝謝你。 – 6r0pius 2012-07-31 14:23:17