mirror of
https://github.com/danieldemus/openhab-core.git
synced 2025-01-11 05:41:52 +01:00
fixed dashboard localization (#233)
- included ESH-INF to binary - simplified getLocalizedText method as it was now only called with a null locale Signed-off-by: Kai Kreuzer <kai@openhab.org>
This commit is contained in:
parent
3fa30c1fba
commit
008a67486e
@ -4,5 +4,6 @@ bin.includes = META-INF/,\
|
|||||||
OSGI-INF/,\
|
OSGI-INF/,\
|
||||||
web/,\
|
web/,\
|
||||||
templates/,\
|
templates/,\
|
||||||
about.html
|
about.html,\
|
||||||
|
ESH-INF/
|
||||||
source.. = src/main/java/
|
source.. = src/main/java/
|
||||||
|
@ -233,19 +233,19 @@ public class DashboardService {
|
|||||||
* fall-back would be present it returns the key.
|
* fall-back would be present it returns the key.
|
||||||
*
|
*
|
||||||
* @param key key to get locale from
|
* @param key key to get locale from
|
||||||
* @param locale known locale
|
|
||||||
* @return localized text for the key
|
* @return localized text for the key
|
||||||
*/
|
*/
|
||||||
|
|
||||||
private String getLocalizedText(String key, Locale locale) {
|
private String getLocalizedText(String key) {
|
||||||
Locale useLocale = locale == null ? localeProvider.getLocale() : locale;
|
Locale useLocale = localeProvider.getLocale() == null ? Locale.ENGLISH : localeProvider.getLocale();
|
||||||
|
|
||||||
if ("locale".equals(key)) {
|
if ("locale".equals(key)) {
|
||||||
// The return value for "locale" key is an ISO 639-1 language code
|
// The return value for "locale" key is an ISO 639-1 language code
|
||||||
// In case there is no translation for the used locale provided with the dashboard, "en" is returned
|
// In case there is no translation for the used locale provided with the dashboard, "en" is returned
|
||||||
return bundleContext.getBundle()
|
return bundleContext.getBundle()
|
||||||
.getEntry("ESH-INF/i18n/dashboard_" + useLocale.getLanguage() + ".properties") != null
|
.getEntry("ESH-INF/i18n/dashboard_" + useLocale.getLanguage() + ".properties") != null
|
||||||
? useLocale.getLanguage() : "en";
|
? useLocale.getLanguage()
|
||||||
|
: "en";
|
||||||
} else {
|
} else {
|
||||||
return i18nProvider.getText(bundleContext.getBundle(), key, key, useLocale);
|
return i18nProvider.getText(bundleContext.getBundle(), key, key, useLocale);
|
||||||
}
|
}
|
||||||
|
@ -12,10 +12,8 @@ import java.io.IOException;
|
|||||||
import java.util.Dictionary;
|
import java.util.Dictionary;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Hashtable;
|
import java.util.Hashtable;
|
||||||
import java.util.Locale;
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.function.BiFunction;
|
|
||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
import java.util.regex.Matcher;
|
import java.util.regex.Matcher;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
@ -61,11 +59,11 @@ public class DashboardServlet extends HttpServlet {
|
|||||||
|
|
||||||
private Set<DashboardTile> tiles;
|
private Set<DashboardTile> tiles;
|
||||||
|
|
||||||
private BiFunction<String, Locale, String> localizeFunction;
|
private Function<String, String> localizeFunction;
|
||||||
|
|
||||||
public DashboardServlet(ConfigurationAdmin configurationAdmin, String indexTemplate, String entryTemplate,
|
public DashboardServlet(ConfigurationAdmin configurationAdmin, String indexTemplate, String entryTemplate,
|
||||||
String warnTemplate, String setupTemplate, Set<DashboardTile> tiles,
|
String warnTemplate, String setupTemplate, Set<DashboardTile> tiles,
|
||||||
BiFunction<String, Locale, String> localizeFunction) {
|
Function<String, String> localizeFunction) {
|
||||||
this.configurationAdmin = configurationAdmin;
|
this.configurationAdmin = configurationAdmin;
|
||||||
this.indexTemplate = indexTemplate;
|
this.indexTemplate = indexTemplate;
|
||||||
this.entryTemplate = entryTemplate;
|
this.entryTemplate = entryTemplate;
|
||||||
@ -113,8 +111,7 @@ public class DashboardServlet extends HttpServlet {
|
|||||||
replaceMap.put("warn", isExposed(req) ? warnTemplate : "");
|
replaceMap.put("warn", isExposed(req) ? warnTemplate : "");
|
||||||
// Set the messages in the session
|
// Set the messages in the session
|
||||||
resp.setContentType("text/html;charset=UTF-8");
|
resp.setContentType("text/html;charset=UTF-8");
|
||||||
// We use for UI language the server locale rather than the browser locale that we can get with req.getLocale()
|
resp.getWriter().append(replaceKeysWithLocaleFunction(replaceKeysFromMap(indexTemplate, replaceMap)));
|
||||||
resp.getWriter().append(replaceKeysWithLocaleFunction(replaceKeysFromMap(indexTemplate, replaceMap), null));
|
|
||||||
resp.getWriter().close();
|
resp.getWriter().close();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -126,9 +123,7 @@ public class DashboardServlet extends HttpServlet {
|
|||||||
Map<String, String> replaceMap = new HashMap<>();
|
Map<String, String> replaceMap = new HashMap<>();
|
||||||
replaceMap.put("version", OpenHAB.getVersion() + " " + OpenHAB.buildString());
|
replaceMap.put("version", OpenHAB.getVersion() + " " + OpenHAB.buildString());
|
||||||
resp.setContentType("text/html;charset=UTF-8");
|
resp.setContentType("text/html;charset=UTF-8");
|
||||||
// We use for UI language the server locale rather than the browser locale that we can get with
|
resp.getWriter().append(replaceKeysWithLocaleFunction(replaceKeysFromMap(setupTemplate, replaceMap)));
|
||||||
// req.getLocale()
|
|
||||||
resp.getWriter().append(replaceKeysWithLocaleFunction(replaceKeysFromMap(setupTemplate, replaceMap), null));
|
|
||||||
resp.getWriter().close();
|
resp.getWriter().close();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -204,8 +199,8 @@ public class DashboardServlet extends HttpServlet {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
private String replaceKeysWithLocaleFunction(String template, Locale locale) {
|
private String replaceKeysWithLocaleFunction(String template) {
|
||||||
return replaceKeysWithFunction(template, (key) -> localizeFunction.apply(key, locale));
|
return replaceKeysWithFunction(template, (key) -> localizeFunction.apply(key));
|
||||||
}
|
}
|
||||||
|
|
||||||
private String replaceKeysFromMap(String template, Map<String, String> map) {
|
private String replaceKeysFromMap(String template, Map<String, String> map) {
|
||||||
|
Loading…
Reference in New Issue
Block a user