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
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.
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.
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.
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.
Nasıl java uygulaması, bir windows hiz...
Nasıl Java sunucu uygulaması bir filtr...
Nasıl yerel Java Uygulaması Motor depo...
Nasıl java uygulaması içinden vm değiş...
Nasıl program içinde java uygulaması ç...