From 0aace28903851405b765e917714dbd6f5e5955b8 Mon Sep 17 00:00:00 2001 From: Mathieu Date: Thu, 1 Dec 2022 07:29:53 +0100 Subject: [PATCH] LDAP-style localisation in ACR --- .../org/argeo/api/acr/ldap/LdapAcrUtils.java | 31 +++++++++++++++++++ .../org/argeo/api/acr/ldap/NamingUtils.java | 14 ++++----- 2 files changed, 38 insertions(+), 7 deletions(-) create mode 100644 org.argeo.api.acr/src/org/argeo/api/acr/ldap/LdapAcrUtils.java diff --git a/org.argeo.api.acr/src/org/argeo/api/acr/ldap/LdapAcrUtils.java b/org.argeo.api.acr/src/org/argeo/api/acr/ldap/LdapAcrUtils.java new file mode 100644 index 000000000..7ef64c25a --- /dev/null +++ b/org.argeo.api.acr/src/org/argeo/api/acr/ldap/LdapAcrUtils.java @@ -0,0 +1,31 @@ +package org.argeo.api.acr.ldap; + +import java.util.Locale; + +import javax.xml.namespace.QName; + +import org.argeo.api.acr.Content; +import org.argeo.api.acr.ContentName; + +/** Utilities around ACR and LDAP conventions. */ +public class LdapAcrUtils { + + /** singleton */ + private LdapAcrUtils() { + } + + public static Object getLocalized(Content content, QName key, Locale locale) { + if (locale == null) + throw new IllegalArgumentException("A locale must be specified"); + Object value = null; + if (locale.getCountry() != null && !locale.getCountry().equals("")) + value = content.get(new ContentName(key.getNamespaceURI(), + key.getLocalPart() + ";lang-" + locale.getLanguage() + "-" + locale.getCountry())); + if (value == null) + value = content + .get(new ContentName(key.getNamespaceURI(), key.getLocalPart() + ";lang-" + locale.getLanguage())); + if (value == null) + value = content.get(key); + return value; + } +} diff --git a/org.argeo.api.acr/src/org/argeo/api/acr/ldap/NamingUtils.java b/org.argeo.api.acr/src/org/argeo/api/acr/ldap/NamingUtils.java index 9f7ec61d8..88b76ecd2 100644 --- a/org.argeo.api.acr/src/org/argeo/api/acr/ldap/NamingUtils.java +++ b/org.argeo.api.acr/src/org/argeo/api/acr/ldap/NamingUtils.java @@ -96,11 +96,11 @@ public class NamingUtils { } - public static void main(String args[]) { - ZonedDateTime now = ZonedDateTime.now().withZoneSameInstant(ZoneOffset.UTC); - String str = utcLdapDate.format(now); - System.out.println(str); - utcLdapDate.parse(str); - utcLdapDate.parse("19520512000000Z"); - } +// public static void main(String args[]) { +// ZonedDateTime now = ZonedDateTime.now().withZoneSameInstant(ZoneOffset.UTC); +// String str = utcLdapDate.format(now); +// System.out.println(str); +// utcLdapDate.parse(str); +// utcLdapDate.parse("19520512000000Z"); +// } } -- 2.30.2