Rumah Java javaTutorial Mencapai sokongan berbilang bahasa dan aplikasi antarabangsa melalui Spring Boot

Mencapai sokongan berbilang bahasa dan aplikasi antarabangsa melalui Spring Boot

Jun 23, 2023 am 09:09 AM
spring boot Sokongan berbilang bahasa Permohonan antarabangsa

Dengan perkembangan globalisasi, semakin banyak laman web dan aplikasi perlu menyediakan sokongan berbilang bahasa dan fungsi pengantarabangsaan. Bagi pembangun, melaksanakan fungsi ini bukanlah tugas yang mudah kerana ia memerlukan pertimbangan dari banyak aspek, seperti terjemahan bahasa, tarikh, masa dan format mata wang, dsb. Walau bagaimanapun, menggunakan rangka kerja Spring Boot, kami boleh melaksanakan sokongan berbilang bahasa dan aplikasi antarabangsa dengan mudah.

Pertama, marilah kita memahami antara muka LocaleResolver yang disediakan oleh Spring Boot. Antara muka LocaleResolver ialah antara muka yang digunakan untuk menghuraikan dan mengembalikan objek Locale. Objek Tempatan mewakili bahasa, rantau dan maklumat berkaitan yang digunakan oleh pengguna. Dalam Spring Boot, antara muka LocaleResolver mempunyai dua pelaksanaan: CookieLocaleResolver dan AcceptHeaderLocaleResolver.

CookieLocaleResolver menghuraikan objek Locale melalui kuki penyemak imbas. Apabila pengguna memilih bahasa, objek Tempatan akan ditetapkan kepada penyemak imbas dan disimpan dalam kuki. Oleh itu, pada kali berikutnya pengguna melawat tapak web, CookieLocaleResolver dapat membaca objek Tempatan daripada kuki.

AcceptHeaderLocaleResolver menyelesaikan objek Tempatan melalui medan Accept-Language dalam pengepala permintaan HTTP. Apabila pengguna menghantar permintaan dengan pengepala Accept-Language, AcceptHeaderLocaleResolver akan menghuraikan objek Locale dan mengembalikannya.

Selain antara muka LocaleResolver, Spring Boot juga menyediakan antara muka MessageSource. Antara muka MessageSource digunakan untuk menghuraikan dan memproses mesej berbilang bahasa. Dalam Spring Boot, antara muka MessageSource mempunyai dua pelaksanaan: ResourceBundleMessageSource dan ReloadableResourceBundleMessageSource.

ResourceBundleMessageSource ialah pelaksanaan mudah yang menghuraikan mesej berbilang bahasa daripada fail sifat yang disediakan. Fail sifat mengandungi pasangan nilai kunci, dengan kuncinya ialah pengecam mesej dan nilainya ialah mesej itu sendiri. Contohnya, untuk mesej Inggeris dan Cina, fail sifat mungkin kelihatan seperti ini:

# messages_en_US.properties
hello=Hello world!

# messages_zh_CN.properties
hello=你好,世界!
Salin selepas log masuk

Apabila kami perlu memaparkan mesej kepada pengguna, kami boleh menggunakan antara muka MessageSource untuk mendapatkan mesej yang sepadan, dan kemudian memaparkan ia kepada pengguna.

ReloadableResourceBundleMessageSource sangat serupa dengan ResourceBundleMessageSource, tetapi ia membolehkan kami memuatkan semula fail sifat semasa aplikasi sedang berjalan. Ini berguna untuk aplikasi yang memerlukan mesej yang kerap dikemas kini.

Apabila melaksanakan sokongan berbilang bahasa dan aplikasi antarabangsa, kami biasanya perlu mempertimbangkan isu format tarikh, masa dan mata wang. Spring Boot menyediakan kelas FormattingConversionServiceFactoryBean untuk menyelesaikan masalah ini. Kami boleh menggunakannya untuk menentukan tarikh, masa dan format mata wang dan menjadikannya sah dalam aplikasi berbilang bahasa.

Berikut ialah contoh penggunaan kelas FormattingConversionServiceFactoryBean untuk menentukan format tarikh, masa dan mata wang:

@Configuration
public class AppConfig {
  @Bean
  public FormattingConversionServiceFactoryBean formattingConversionServiceFactoryBean() {
    FormattingConversionServiceFactoryBean factoryBean = new FormattingConversionServiceFactoryBean();
    factoryBean.setRegisterDefaultFormatters(false);
    factoryBean.setFormatters(Set.of(dateTimeFormatter(), dateFormatter(), numberFormatter()));
    return factoryBean;
  }

  private DateTimeFormatter dateTimeFormatter() {
    return DateTimeFormatter.ofLocalizedDateTime(FormatStyle.MEDIUM).withLocale(LocaleContextHolder.getLocale());
  }

  private DateTimeFormatter dateFormatter() {
    return DateTimeFormatter.ofLocalizedDate(FormatStyle.MEDIUM).withLocale(LocaleContextHolder.getLocale());
  }

  private NumberFormatter numberFormatter() {
    return new NumberFormatter(NumberFormat.getCurrencyInstance(LocaleContextHolder.getLocale()));
  }
}
Salin selepas log masuk

Dalam kod di atas, kami mencipta FormattingConversionServiceFactoryBean untuk menentukan format tarikh, masa dan mata wang. Kami menggunakan DateTimeFormatter dan NumberFormatter untuk menentukan masa tarikh dan format mata wang, dan menggunakan kaedah LocaleContextHolder.getLocale() untuk mendapatkan objek Locale pengguna semasa.

Akhir sekali, kami perlu menyediakan LocaleResolver dan MessageSource dalam aplikasi kami untuk menyokong berbilang bahasa. Kita boleh mencapai ini menggunakan anotasi @EnableWebMvc dan @Configuration yang disediakan oleh Spring Boot. Berikut ialah contoh kelas konfigurasi:

@Configuration
@EnableWebMvc
public class WebConfig implements WebMvcConfigurer {
  @Bean
  public LocaleResolver localeResolver() {
    AcceptHeaderLocaleResolver resolver = new AcceptHeaderLocaleResolver();
    resolver.setDefaultLocale(Locale.US);
    return resolver;
  }

  @Bean
  public MessageSource messageSource() {
    ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource();
    messageSource.setBasenames("messages");
    messageSource.setFallbackToSystemLocale(false);
    return messageSource;
  }

  @Override
  public void addInterceptors(InterceptorRegistry registry) {
    LocaleChangeInterceptor localeChangeInterceptor = new LocaleChangeInterceptor();
    localeChangeInterceptor.setParamName("lang");
    registry.addInterceptor(localeChangeInterceptor);
  }
}
Salin selepas log masuk

Dalam kod di atas, kami telah mencipta kelas konfigurasi WebConfig dan mendayakan ciri Spring MVC menggunakan anotasi @EnableWebMvc. Kami menggunakan localeResolver() Bean dan messageSource() Bean untuk menetapkan LocaleResolver dan MessageSource. Kami juga menambah LocaleChangeInterceptor menggunakan kaedah addInterceptors(), dan dalam pemintas ini kami menggunakan parameter "lang" untuk menukar bahasa pengguna.

Ringkasnya, kami boleh melaksanakan sokongan berbilang bahasa dan aplikasi antarabangsa dengan mudah melalui antara muka LocaleResolver, antara muka MessageSource dan kelas FormattingConversionServiceFactoryBean yang disediakan oleh Spring Boot. Menggunakan kaedah di atas, kami boleh membina aplikasi global dengan lebih mudah dan mudah yang memenuhi keperluan bahasa, budaya dan serantau pengguna yang berbeza.

Atas ialah kandungan terperinci Mencapai sokongan berbilang bahasa dan aplikasi antarabangsa melalui Spring Boot. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Gunakan rangka kerja Gin untuk melaksanakan pengantarabangsaan dan fungsi sokongan berbilang bahasa Gunakan rangka kerja Gin untuk melaksanakan pengantarabangsaan dan fungsi sokongan berbilang bahasa Jun 23, 2023 am 11:07 AM

Dengan perkembangan globalisasi dan populariti Internet, semakin banyak laman web dan aplikasi telah mula berusaha untuk mencapai pengantarabangsaan dan fungsi sokongan berbilang bahasa untuk memenuhi keperluan kumpulan orang yang berbeza. Untuk merealisasikan fungsi ini, pembangun perlu menggunakan beberapa teknologi dan rangka kerja termaju. Dalam artikel ini, kami akan memperkenalkan cara menggunakan rangka kerja Gin untuk melaksanakan pengantarabangsaan dan keupayaan sokongan berbilang bahasa. Rangka kerja Gin ialah rangka kerja web ringan yang ditulis dalam bahasa Go. Ia cekap, mudah digunakan dan fleksibel, dan telah menjadi rangka kerja pilihan bagi banyak pembangun. selain itu,

Spring Boot+MyBatis+Atomikos+MySQL (dengan kod sumber) Spring Boot+MyBatis+Atomikos+MySQL (dengan kod sumber) Aug 15, 2023 pm 04:12 PM

Dalam projek sebenar, kami cuba mengelakkan transaksi yang diedarkan. Walau bagaimanapun, kadangkala ia benar-benar perlu untuk melakukan beberapa pemisahan perkhidmatan, yang akan membawa kepada masalah transaksi yang diedarkan. Pada masa yang sama, transaksi yang diedarkan juga ditanya di pasaran semasa temu bual Anda boleh berlatih dengan kes ini, dan anda boleh bercakap tentang 123 dalam temu bual.

Cara menggunakan Golang untuk melaksanakan sokongan berbilang bahasa untuk aplikasi web Cara menggunakan Golang untuk melaksanakan sokongan berbilang bahasa untuk aplikasi web Jun 24, 2023 pm 12:25 PM

Dengan kemajuan globalisasi yang berterusan, keperluan untuk berbilang bahasa menjadi semakin biasa, dan sokongan berbilang bahasa untuk aplikasi web telah menjadi isu yang perlu dipertimbangkan oleh pembangun. Golang, sebagai bahasa pengaturcaraan yang cekap dan mudah digunakan, juga dapat menyelesaikan masalah ini dengan baik. Dalam artikel ini, kita akan membincangkan cara melaksanakan sokongan berbilang bahasa untuk aplikasi web menggunakan Golang. 1. Prinsip asas sokongan berbilang bahasa Kunci kepada sokongan berbilang bahasa untuk aplikasi web terletak pada cara mengenal pasti dan menyimpan teks dalam bahasa yang berbeza. Pendekatan biasa adalah menggunakan

Penukaran berbilang bahasa ThinkPHP6: merealisasikan aplikasi antarabangsa Penukaran berbilang bahasa ThinkPHP6: merealisasikan aplikasi antarabangsa Aug 25, 2023 pm 08:31 PM

Pensuisan berbilang bahasa ThinkPHP6: merealisasikan aplikasi antarabangsa Dengan perkembangan pesat Internet dan proses globalisasi, semakin banyak laman web dan aplikasi perlu menyokong fungsi berbilang bahasa untuk memenuhi keperluan pengguna di negara dan wilayah yang berbeza. Apabila menggunakan ThinkPHP6 untuk membangunkan aplikasi web, mencapai penukaran berbilang bahasa ialah tugas penting Artikel ini akan memperkenalkan cara melaksanakan aplikasi antarabangsa dalam ThinkPHP6 untuk menyediakan pengguna dengan pengalaman berbilang bahasa yang mudah. Mengapa anda memerlukan penukaran berbilang bahasa? Dalam konteks globalisasi, pengguna menggunakan Internet

Cara menggunakan Laravel untuk melaksanakan sokongan berbilang bahasa Cara menggunakan Laravel untuk melaksanakan sokongan berbilang bahasa Nov 04, 2023 am 11:07 AM

Laravel ialah rangka kerja PHP yang sangat popular yang menyediakan sejumlah besar ciri dan perpustakaan yang menjadikan pembangunan aplikasi web lebih mudah dan lebih cekap. Salah satu ciri penting ialah sokongan berbilang bahasa Laravel mencapai sokongan berbilang bahasa melalui mekanisme pakej bahasanya sendiri dan perpustakaan pihak ketiga. Artikel ini akan memperkenalkan cara menggunakan Laravel untuk melaksanakan sokongan berbilang bahasa dan menyediakan contoh kod khusus. Menggunakan fungsi pek bahasa Laravel Laravel dilengkapi dengan mekanisme pek bahasa yang membolehkan kami melaksanakan pelbagai bahasa dengan mudah

Spring Boot melaksanakan teknologi pemisahan baca-tulis MySQL Spring Boot melaksanakan teknologi pemisahan baca-tulis MySQL Aug 15, 2023 pm 04:52 PM

Bagaimana untuk mencapai pemisahan baca-tulis, projek Spring Boot, pangkalan data adalah MySQL, dan lapisan kegigihan menggunakan MyBatis.

Bagaimana untuk menggunakan rangka kerja Webman untuk mencapai pengantarabangsaan dan sokongan berbilang bahasa? Bagaimana untuk menggunakan rangka kerja Webman untuk mencapai pengantarabangsaan dan sokongan berbilang bahasa? Jul 09, 2023 pm 03:51 PM

Kini, dengan perkembangan teknologi Internet yang berterusan, semakin banyak laman web dan aplikasi perlu menyokong pelbagai bahasa dan pengantarabangsaan. Dalam pembangunan web, menggunakan rangka kerja boleh memudahkan proses pembangunan. Artikel ini akan memperkenalkan cara menggunakan rangka kerja Webman untuk mencapai pengantarabangsaan dan sokongan berbilang bahasa, dan menyediakan beberapa contoh kod. 1. Apakah rangka kerja Webman? Webman ialah rangka kerja berasaskan PHP ringan yang menyediakan fungsi yang kaya dan alatan yang mudah digunakan untuk membangunkan aplikasi web. Salah satunya ialah pengantarabangsaan dan pelbagai

Menggunakan WebSocket dalam Spring Boot untuk melaksanakan fungsi tolak dan pemberitahuan Menggunakan WebSocket dalam Spring Boot untuk melaksanakan fungsi tolak dan pemberitahuan Jun 23, 2023 am 11:47 AM

Dalam pembangunan aplikasi web moden, WebSocket ialah teknologi biasa untuk komunikasi segera dan pemindahan data masa nyata. Rangka kerja SpringBoot menyediakan sokongan untuk WebSocket bersepadu, menjadikannya sangat mudah untuk pembangun melaksanakan fungsi tolak dan pemberitahuan. Artikel ini akan memperkenalkan cara menggunakan WebSocket untuk melaksanakan fungsi tolak dan pemberitahuan dalam SpringBoot, dan menunjukkan pelaksanaan ruang sembang dalam talian masa nyata yang ringkas. Cipta projek SpringBoot Mula-mula, kita perlu mencipta a

See all articles