Search in sources :

Example 11 with I18nManager

use of org.olat.core.util.i18n.I18nManager in project openolat by klemens.

the class WikiPageComparator method compare.

/**
 * Compares the name of page 'a' to that of page 'b' with respect to the
 * current locale (different languages have different alphabets and hence
 * different orders).
 *
 * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object)
 */
public int compare(WikiPage a, WikiPage b) {
    // Be aware of locale when ordering
    I18nManager mgr = I18nManager.getInstance();
    Locale userLocale = mgr.getCurrentThreadLocale();
    Collator collator = Collator.getInstance(userLocale);
    collator.setStrength(Collator.PRIMARY);
    // Undefinied order if page a or b is null
    int order = 0;
    if (a != null && b != null) {
        final String nameA = a.getPageName();
        final String nameB = b.getPageName();
        // Compare page names with the localized comparator
        order = collator.compare(nameA, nameB);
    }
    return order;
}
Also used : Locale(java.util.Locale) I18nManager(org.olat.core.util.i18n.I18nManager) Collator(java.text.Collator)

Example 12 with I18nManager

use of org.olat.core.util.i18n.I18nManager 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();
}
Also used : I18nModule(org.olat.core.util.i18n.I18nModule) Locale(java.util.Locale) UserRequest(org.olat.core.gui.UserRequest) I18nManager(org.olat.core.util.i18n.I18nManager) Path(javax.ws.rs.Path) Produces(javax.ws.rs.Produces) GET(javax.ws.rs.GET)

Example 13 with I18nManager

use of org.olat.core.util.i18n.I18nManager in project openolat by klemens.

the class JSTranslatorMapper method handle.

/**
 * @see org.olat.core.dispatcher.mapper.Mapper#handle(java.lang.String, javax.servlet.http.HttpServletRequest)
 */
public MediaResource handle(String relPath, HttpServletRequest request) {
    I18nManager i18nManager = I18nManager.getInstance();
    // Get bundle and locale
    String[] parts = relPath.split("/");
    String localeKey = parts[1];
    String bundleName = parts[2];
    Locale locale = i18nManager.getLocaleOrDefault(localeKey);
    // Get the translation data
    JSONObject translationData = i18nManager.getJSONTranslatorData(locale, bundleName);
    return new JSONMediaResource(translationData, "UTF-8");
}
Also used : Locale(java.util.Locale) JSONObject(org.json.JSONObject) JSONMediaResource(org.olat.core.gui.media.JSONMediaResource) I18nManager(org.olat.core.util.i18n.I18nManager)

Example 14 with I18nManager

use of org.olat.core.util.i18n.I18nManager 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);
}
Also used : I18nModule(org.olat.core.util.i18n.I18nModule) HashMap(java.util.HashMap) I18nManager(org.olat.core.util.i18n.I18nManager)

Aggregations

I18nManager (org.olat.core.util.i18n.I18nManager)14 Locale (java.util.Locale)6 HashMap (java.util.HashMap)4 I18nModule (org.olat.core.util.i18n.I18nModule)4 File (java.io.File)2 Collator (java.text.Collator)2 GET (javax.ws.rs.GET)2 Path (javax.ws.rs.Path)2 Produces (javax.ws.rs.Produces)2 JSONObject (org.json.JSONObject)2 UserRequest (org.olat.core.gui.UserRequest)2 VelocityContainer (org.olat.core.gui.components.velocity.VelocityContainer)2 JSONMediaResource (org.olat.core.gui.media.JSONMediaResource)2