cancel
Showing results for 
Search instead for 
Did you mean: 

Récupération de la langue définie dans le profil utilisateur

huberd
Champ in-the-making
Champ in-the-making
Bonjour,

je cherche le moyen de récupérer via une classe Java, la langue définie dans le profil utilisateur (locale) afin de l'exploiter pour l'emission de mail dans la langue de l'utilisateur.

Merci pour votre aide.
5 REPLIES 5

michel
Champ in-the-making
Champ in-the-making
Bonjour,
C'est la valeurs de la méta donnée


{http://www.alfresco.org/model/application/1.0}interface-language

Et elle se trouve via le navigateur de nœud :

/{http://www.alfresco.org/model/system/1.0}system/{http://www.alfresco.org/model/system/1.0}people/{ht... 

Donc pour ce faire, il faut rechercher l'utilisateur courant (qui est de type cmSmiley Tongueerson) et puis sur cette node prendre le XPath:

app:configurations/app:preferences

Et au final, avec le nodeService prendre la propriété nommée plus haut.

Bien à Toi.

huberd
Champ in-the-making
Champ in-the-making
Bonjour,
C'est la valeurs de la méta donnée


{http://www.alfresco.org/model/application/1.0}interface-language

Et elle se trouve via le navigateur de nœud :

/{http://www.alfresco.org/model/system/1.0}system/{http://www.alfresco.org/model/system/1.0}people/{ht... 

Donc pour ce faire, il faut rechercher l'utilisateur courant (qui est de type cmSmiley Tongueerson) et puis sur cette node prendre le XPath:

app:configurations/app:preferences

Et au final, avec le nodeService prendre la propriété nommée plus haut.

Bien à Toi.

Je t'avoue franchement ne pas tout comprendre.

Ce que j'ai essayé de faire c'est ceci, essayer de récuperer l'attribut ContentModel.PROP_LOCALE d'un utilisateur comme suit :

NodeRef nodeRef = personService.getPerson(userName);
locale = (Locale)nodeService.getProperty(nodeRef, ContentModel.PROP_LOCALE);

mais cela ne me retourne rien.

Peux-tu m'en dire plus sur ta méthode, car là je suis complètement largué.

Merci pour ton aide.

michel
Champ in-the-making
Champ in-the-making
Bonjour,

voici, le code pour récupérer la valeur:


StoreRef store = new StoreRef(StoreRef.PROTOCOL_WORKSPACE, "SpacesStore");
      String query = "+TYPE:\"cm:person\" +@cm\\:userName:\"USER_NAME\"";
      ResultSet rs = searchService.query(store, SearchService.LANGUAGE_LUCENE, query);
      if(rs !=null && rs.length()>0) {
         NodeRef node = rs.getNodeRef(0);
         NodeRef child =nodeService.getChildByName(node, QName.createQName("{http://www.alfresco.org/model/application/1.0}configurations"), "{http://www.alfresco.org/model/application/1.0}configurations");
         child = nodeService.getChildByName(child, ContentModel.ASSOC_CONTAINS, "{http://www.alfresco.org/model/application/1.0}preferences");
         String locale = (String)nodeService.getProperty(child, QName.createQName("{http://www.alfresco.org/model/application/1.0}interface-language"));
         
      }

Pour savoir quels sont les propriétés d'une node, il faut toujours passer par le navigateur de nœuds dans le panneau de l'administrateur.

dranakan
Champ on-the-rise
Champ on-the-rise
Hello,

Je recherche à connaître la langue des utilisateurs. Le code ci-dessus date de 2008. Comment fait-on pour retrouver la langue ? (4.0D).
Dans l'exemple ci-dessus, le child est null (ligne en dessous du  "NodeRef node = rs.getNodeRef(0);").

J'ai essayé une autre manière mais j'obtiens toujours la même langue pour un utilisateur. Je n'arrive pas à modifier la langue de l'utilisateur si je me connecte à Explorer ou Share (en changeant dans le navigateur).
serviceRegistry.getNodeService().getProperty(person, ContentModel.PROP_LOCALE).toString()

Merci bien.

rguinot
Confirmed Champ
Confirmed Champ
Regardez plutôt l'usage de la classe I18NUtil pour le support thread-local de la Locale courante.