SORU
25 Kasım 2010, PERŞEMBE


Nasıl Java web uygulaması için uluslar arası platformda?

Uluslararası bir hale getirebilirim süreç olduğunu Google'dan öğrendim uygulama tüm diller kullanmak için web. Uluslararası duruma getirme işlemi için Unicode anlamak istiyorum, here there Unicode hakkında öğrendim.

Bir karakter kümesi bayt ve yine bayt olarak ayarla karakter çözülür nasıl Unicode anlamak mümkün duyuyorum. Ama daha ileriye taşımak için nasıl bilmiyorum. Dizeleri öğrenmek istiyorum ve benim web uygulamasında yerelleştirme uygulamak için nasıl bilmek istiyorum. Herhangi Bir Öneri Lütfen? Bana yol lütfen.

Hedefim:

Benim ana hedefi Tercüme (Arapça ve tersi İngilizce) Web Uygulaması geliştirmek için. Uluslararası takip etmek istiyorum. Her üç tarayıcıları yani FF, Chrome, IE çeviri için benim web Uygulamasını çalıştırmak istiyorum. Bunu nasıl elde ederim?

CEVAP
25 Kasım 2010, PERŞEMBE


Temel JSP/Sunucu uygulaması bir webapplication durumunda, temel yaklaşım resource bundles ile birlikte 35* fmt taglib *kullanarak olacaktır. Kaynak demetleri anahtar değer anahtar Tüm diller için aynı olan bir sabittir ve değeri, dili başına çok farklı olan çiftleri içerir. Kaynak paketleri genellikle ResourceBundle API tarafından yüklenir properties files. Bu ancak örneğin anahtar-değer çiftleri bir veritabanı yükleyebilirsiniz böylece özelleştirilebilir.

İşte özellikleri ile webapplication giriş formu uluslar arası platformda nasıl bir örnek tabanlı kaynak demetleri dosya.


  1. Aşağıdaki dosyaları oluşturmak ve bir paket içinde onları, örneğin com.example.i18n koymak.

    text.properties (varsayılan dil olarak anahtar-değer çiftleri, genellikle İngilizce içerir)

    login.label.username = Username
    login.label.password = Password
    login.button.submit = Sign in
    

    text_nl.properties (Hollandaca (nl) anahtar-değer çiftleri içerir)

    login.label.username = Gebruikersnaam
    login.label.password = Wachtwoord
    login.button.submit = Inloggen
    

    10* *(İspanyolca (es) anahtar-değer çiftleri içerir)

    login.label.username = Nombre de usario
    login.label.password = Contraseña
    login.button.submit = Acceder
    

    Kaynak paketi dosya adı 12* *desene uygun olur. _ll parçası ISO 693-1 küçük dil kodu olmalıdır. _CC parçası mevcut olduğunda isteğe bağlı ve sadece gereklidir. _CC bölümü büyük ISO 3166-1 Alpha-2 ülke kodu olmalıdır. İsteğe bağlı ve çoğunlukla sadece ülkeye özgü dili lehçeleri ayırt etmek için kullanılır, American English (_en_US) British English (_en_GB)gibidir.


  2. Eğer henüz hazır değilse, JSTL yükleyin. Eğer çalışan bir Sunucu uygulaması 2.5 konteyner veya daha yeni (Tomcat 6.0 vb.) ve web.xml ilan uygun Sunucu uygulaması 2.5 şartname, sonra koy jstl-1.2.jar web /WEB-INF/lib klasör.


  3. Aşağıdaki örnek, JSP dosyası ve web içeriğini klasöre koydum oluşturun.

    login.jsp

    <%@ page pageEncoding="UTF-8" %>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
    <c:set var="language" value="${not empty param.language ? param.language : not empty language ? language : pageContext.request.locale}" scope="session" />
    <fmt:setLocale value="${language}" />
    <fmt:setBundle basename="com.example.i18n.text" />
    <!DOCTYPE html>
    <html lang="${language}">
        <head>
            <title>JSP/JSTL i18n demo</title>
        </head>
        <body>
            <form>
                <select id="language" name="language" onchange="submit()">
                    <option value="en" ${language == 'en' ? 'selected' : ''}>English</option>
                    <option value="nl" ${language == 'nl' ? 'selected' : ''}>Nederlands</option>
                    <option value="es" ${language == 'es' ? 'selected' : ''}>Español</option>
                </select>
            </form>
            <form method="post">
                <label for="username"><fmt:message key="login.label.username" />:</label>
                <input type="text" id="username" name="username">
                <br>
                <label for="password"><fmt:message key="login.label.password" />:</label>
                <input type="password" id="password" name="password">
                <br>
                <fmt:message key="login.button.submit" var="buttonValue" />
                <input type="submit" name="submit" value="${buttonValue}">
            </form>
        </body>
    </html>
    

    <c:set var="language"> geçerli dil yönetir. Eğer dil isteği parametre (dil açılır) olarak verilmişse, o zaman ayarlanır. Eğer başka bir dil zaten daha önce oturum ayarlanmış olsaydı, o zaman yerine sopa. Başka kullanıcı Başlığı istekte yerel birlikte kullanın.

    <fmt:setLocale> kaynak paketi için yerel ayarlar. Bu çizgi çok önemliönce<fmt:setBundle>.

    <fmt:setBundle> temel adı (_ll_CC belirtici olmadan kendi adı ile kadar tam nitelikli paket adı) kaynak paketine başlatır.

    <fmt:message> belirtilen paket anahtarı ile mesaj değerini alır.

    <html lang="${language}"> sayfa ne kadar yinelenen içerik (böylece, SEO için iyi) olarak işaretli olmayacak bu searchbots bildirir.

    Dil açılan başka bir dil seçilir ve sayfanın yeni seçilen dil ile yenileneceği hemen JavaScript ile sunacak.


Sen ancak dosyaları varsayılan olarak özellikler-8859-1, ISO karakter kodlaması kullanarak okumak akılda tutmak gerekir. Unicode kaçar onları kaçmak gerekir. Bu iş ile İLGİLENİYORUZ tarafından sağlanan native2ascii.exe aracı kullanarak olabilir. Ayrıca Bkz: 45* *daha fazla ayrıntı için.

Teorik bir alternatif bir özel Control ile bir paket UTF-8, ama ne yazık ki temel JSTL tarafından desteklenen değil gibi bu dosyaları yüklemek için kaynağı olacaktır fmt taglib. Onu yönetmek için kendini Filter bir yardım edin ihtiyacınız var. (MVC) OLUMSUZLUK, Ayrıca bakınız this article daha şeffaf bir şekilde bu işi, hangi çerçeveler vardır.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • CNET

    CNET

    5 Mayıs 2006
  • Caramella Girls

    Caramella Gi

    19 Mayıs 2008
  • MndsgnVEVO

    MndsgnVEVO

    26 Kasım 2013