मैं स्प्रिंग बूट और थाइमेलीफ का उपयोग करके बहुभाषी एप्लिकेशन बनाने की कोशिश कर रहा हूं।I18n + Thymeleaf
मैंने अलग-अलग संदेशों को सहेजने के लिए कुछ गुण फ़ाइलें बनाई हैं, लेकिन मैं इसे केवल अपनी ब्राउज़र भाषा में प्रदर्शित करने में सक्षम हूं (मैंने ब्राउजर लोकेल बदलने के लिए एक्सटेंशन की कोशिश की लेकिन वे काम नहीं कर रहे हैं), वैसे भी मैं एक रखना चाहता था इस कर्तव्य को करने के लिए मेरी वेबसाइट में बटन (भाषा बदलना), लेकिन मुझे नहीं पता कि इसे कैसे प्रबंधित किया जाए या कैसे प्रबंधित किया जाए।
परियोजना
I18n विन्यास वर्ग
import org.springframework.context.MessageSource;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.support.ResourceBundleMessageSource;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
@Configuration
@EnableWebMvc
public class I18nConfiguration extends WebMvcConfigurerAdapter {
@Bean
public MessageSource messageSource() {
ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource();
messageSource.setBasename("i18n/messages");
messageSource.setDefaultEncoding("UTF-8");
return messageSource;
}
}
Thymleaf HTML पृष्ठ के संरचना:
गोना तुम मेरे config दिखाने
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org"
th:with="lang=${#locale.language}" th:lang="${lang}">
<head>
<title>Spring Boot and Thymeleaf example</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<h3>Spring Boot and Thymeleaf</h3>
<p>Hello World!</p>
<p th:text="${nombre}"></p>
<h1 th:text="#{hello.world}">FooBar</h1>
</body>
</html>
संदेश (गुण फ़ाइलें)
messages_en_US.properties
hello.world = Hello people
messages_es.properties
hello.world = Hola gente
दरअसल यह संदेश स्पैनिश में प्रदर्शित होता है, यह सुनिश्चित नहीं करता कि मैं इसे कैसे बदलूं, इसलिए यदि आप मेरी मदद कर सकते हैं तो आपको बहुत धन्यवाद।
एक और सवाल है जो मेरे दिमाग में आता है ... मैं गुण फ़ाइल से डेटाबेस से संदेश कैसे प्राप्त करूं?
बेवकूफ सवाल: आप 'लोकेल' कैसे सेट कर रहे हैं? क्या आपने एक ['लोकेल रिसेल्वर'] (http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/servlet/LocaleResolver.html) कॉन्फ़िगर किया है? आप इसे उस लोकेल को कैसे पारित कर रहे हैं जिसे आप चाहते हैं? –
मुझे नहीं लगता, मुझे लगता है कि वसंत इसे ब्राउज़र कॉन्फ़िगरेशन से ले रहा है। क्या मैं एक बटन प्रेस के आधार पर लोकेल सेट करूँगा? यकीन नहीं है कि यह इस तरह से काम करेगा। –
[शीर्ष] पर शुरू करें (http://www.concretepage.com/spring-4/spring-4-mvc-internationalization-i18n-and-localization-l10n-annotation-example) और जारी रखें।आपको 3 चीजें चाहिए 1) एक 'संदेश स्रोत', 2) एक विशेष अनुरोध के लिए निर्धारित करने के लिए 'लोकेल रिसेल्वर', किस लोकेल का उपयोग करना है, और (वैकल्पिक) 3) 'लोकेल चेंजइंटरसेप्टर' ताकि आप अनुरोध से, लोकेल को 'लोकेल रिसेल्वर' में सेट करें। –