Uluslararasılaşma, i18n olarak da adlandırılıyor, neden bu isim? Uluslararasılaştırma İngilizcesi uluslararasılaştırma olduğu için, i ile n arasında 18 harf vardır, bu yüzden i18n olarak adlandırılır. Uygulamamız uluslararasılaşmışsa, farklı dil ortamlarında kolayca değiştirilebilir; en yaygın olanı Çince ile İngilizce arasında geçiş ve uluslararasılaştırma fonksiyonu da oldukça yaygındır.
Örneğin, belirli bir istek gönderirken, başlıkta bir anahtar-değer çifti ayarlayın: "Accept-Language":"zh"; Accept-Language karşılığındaki değer üzerinden sunucu hangi bölge dilini kullanacağına karar verebilir, ilgili kaynak dosyasını bulabilir, biçimlendirebilir ve istemciye geri gönderebilir.
Yeni bir Spring Boot projesi oluşturun, kaynaklar klasörü altında bir i18n dosyası oluşturun ve aşağıdaki şekilde gösterildiği gibi "Dil Kısaltma Tablosu" formatına göre bu klasör altında yeni bir yapılandırma dosyası oluşturun:
message.properties
message_en.properties
Yapılandırmamızı etkili kılmak için application.properties düzenleme parametreleri eklemeyi unutmayın:
Bahar tanımlarMesaj Kaynağıuluslararasılaştırılmış bilgiye erişim için arayüzler.
getMessage(String code, Object[] args, String defaultMessage, Locale locale) getMessage(String code, Object[] args, Locale locale) getMessage(MessageSourceResolvable resolvable, Locale locale)
Yeni bir kontrolcü oluşturun ve farklı bir kaynak dosyası çağırarak aşağıdaki kodla bir istem döndürmeye çalışın:
Proje, Çince bir Windows sunucusu altında dağıtılıyor ve Çinli kullanıcıların Çince'ye erişiminde hiçbir sorun yok. Linux'un İngilizce sürümüne dağıtıldığında, Çinli kullanıcılar İngilizce bir istem (İngilizce kaynak dosyasının yapılandırmasını okuyun) önerir.
Bunun sebebi bizden kaynaklanıyorYeni bir Çince .properties dosyası yoktur, bu sırada program mevcut sistem diline uyan kaynak dosyasını okur ve tekrar okunamazsa, tanımlanmış özellik dosyası yapılandırmasını okuyamaz。 Projeyi Linux İngilizce sistemine yayımladığımızda, program Çince yapılandırmasını okuyamaz ama _en.properties'in yapılandırma dosyasını okur, böylece arayüz Çince komutunu döndürür.
Çözüm, ayarFallbackToSystemLocaleyanlış, kod şöyledir:
(Son)
|