use of org.olat.core.util.i18n.I18nModule in project OpenOLAT by OpenOLAT.
the class LocalizedXSLTransformer method getInstance.
/**
* Get a localized transformer instance.
*
* @param locale The locale for this transformer instance
* @return A localized transformer
*/
// cluster_ok only in VM
public static LocalizedXSLTransformer getInstance(Locale locale) {
I18nModule i18nModule = CoreSpringFactory.getImpl(I18nModule.class);
LocalizedXSLTransformer instance = instanceHash.get(i18nModule.getLocaleKey(locale));
if (instance == null) {
Translator trans = Util.createPackageTranslator(QTI12ResultDetailsController.class, locale);
LocalizedXSLTransformer newInstance = new LocalizedXSLTransformer(trans);
// see javadoc of ConcurrentHashMap
instance = instanceHash.putIfAbsent(i18nModule.getLocaleKey(locale), newInstance);
if (instance == null) {
// newInstance was put into the map
instance = newInstance;
}
}
return instance;
}
use of org.olat.core.util.i18n.I18nModule in project openolat by klemens.
the class I18nWebService method getTranslation.
/**
* Return the translation of the key. If the "locale" parameter is not specified, the method
* try to use the "locale" of the user and if it hasn't, take the default locale.
* @response.representation.200.mediaType text/plain
* @response.representation.200.doc The translation of the package + key
* @response.representation.200.example OK
* @param packageName The name of the package
* @param key The key to translate
* @param localeKey The locale (optional)
* @param request The HTTP request (optional)
* @return
*/
@GET
@Path("{package}/{key}")
@Produces(MediaType.TEXT_PLAIN)
public Response getTranslation(@PathParam("package") String packageName, @PathParam("key") String key, @QueryParam("locale") String localeKey, @Context HttpServletRequest request) {
I18nManager i18n = CoreSpringFactory.getImpl(I18nManager.class);
I18nModule i18nModule = CoreSpringFactory.getImpl(I18nModule.class);
Locale locale = null;
if (StringHelper.containsNonWhitespace(localeKey)) {
locale = i18n.getLocaleOrDefault(localeKey);
} else {
UserRequest ureq = RestSecurityHelper.getUserRequest(request);
if (ureq != null && ureq.getLocale() != null) {
locale = ureq.getLocale();
}
}
if (locale == null) {
locale = i18nModule.getDefaultLocale();
}
boolean overlayEnabled = i18nModule.isOverlayEnabled();
String val = i18n.getLocalizedString(packageName, key, EMPTY_ARRAY, locale, overlayEnabled, true);
return Response.ok(val).build();
}
use of org.olat.core.util.i18n.I18nModule in project openolat by klemens.
the class VelocityRenderDecorator method getLanguages.
public Languages getLanguages() {
I18nManager i18nMgr = CoreSpringFactory.getImpl(I18nManager.class);
I18nModule i18nModule = CoreSpringFactory.getImpl(I18nModule.class);
Collection<String> enabledKeysSet = i18nModule.getEnabledLanguageKeys();
Map<String, String> langNames = new HashMap<String, String>();
Map<String, String> langTranslators = new HashMap<String, String>();
String[] enabledKeys = ArrayHelper.toArray(enabledKeysSet);
String[] names = new String[enabledKeys.length];
for (int i = 0; i < enabledKeys.length; i++) {
String key = enabledKeys[i];
String langName = i18nMgr.getLanguageInEnglish(key, i18nModule.isOverlayEnabled());
langNames.put(key, langName);
names[i] = langName;
String author = i18nMgr.getLanguageAuthor(key);
langTranslators.put(key, author);
}
ArrayHelper.sort(enabledKeys, names, true, true, true);
return new Languages(enabledKeys, langNames, langTranslators);
}
Aggregations