Hi Andrea,
I had a similar problem and I also use request.LANGUAGE_CODE to switch to 
selected language. In my project I didn't use resource manager (edit 
pages), but I had the same problem with dropdowns in advanced search 
<http://zbiva.zrc-sazu.si/search_sites>. I also edited the function 
get_e55_domain in models/concept.py 
<https://github.com/bojankastelic/zbiva/blob/master/zbiva/models/concept.py> 
(added param for language) and then I used the language from request to 
fill domains in selected language (example in views/search.py 
<https://github.com/bojankastelic/zbiva/blob/master/zbiva/views/search.py>).

Hope this helps.

Bojan

On Friday, June 10, 2016 at 8:44:10 PM UTC+2, [email protected] wrote:
>
> In my case Alexei, this wouldn't work as I use the Middleware to operate 
> language changes - settings.LANGUAGE_CODE would remain defaulted to en_US 
> (the only lang code that I have assigned in settings.py). Instead, I have 
> worked around this issue by replacing settings.LANGUAGE_CODE with 
> translation.get_language().
>
> a.
>
> On Friday, June 10, 2016 at 7:22:20 PM UTC+1, Alexei Peters wrote:
>>
>> Hi Andrea,
>> There is a method in the models/concept.py file at line 375 called 
>> "get_preflabel"
>>
>>     def get_preflabel(self, lang=settings.LANGUAGE_CODE):
>>>         ret = []
>>>         if self.values == []: 
>>>             concept = Concept().get(id=self.id, 
>>> include_subconcepts=False, include_parentconcepts=False, include=['label'])
>>>         else:
>>>             concept = self
>>>         for value in concept.values:
>>>             if value.type == 'prefLabel':
>>>                 if value.language == lang:
>>>                     return value
>>>                 elif value.language == lang.split('-')[0]:
>>>                     ret.insert(0, value)
>>>             elif value.type == 'altLabel':
>>>                 if value.language == lang:
>>>                     ret.insert(0, value)
>>>             ret.append(value)
>>>         return ret[0] if len(ret) > 0 else ConceptValue()
>>
>>
>> that method has been updated in Arches v4 to this:
>>
>>     def get_preflabel(self, lang=settings.LANGUAGE_CODE):
>>>         score = 0
>>>         ranked_labels = []
>>>         if self.values == []:
>>>             concept = Concept().get(id=self.id, 
>>> include_subconcepts=False, include_parentconcepts=False, include=['label'])
>>>         else:
>>>             concept = self
>>>         for value in concept.values:
>>>             ranked_label = {
>>>                 'weight': 1,
>>>                 'value': value
>>>             }
>>>             if value.type == 'prefLabel':
>>>                 ranked_label['weight'] = ranked_label['weight'] * 10
>>>             elif value.type == 'altLabel':
>>>                 ranked_label['weight'] = ranked_label['weight'] * 4
>>>             if value.language == lang:
>>>                 ranked_label['weight'] = ranked_label['weight'] * 10
>>>             elif value.language.split('-')[0] == lang.split('-')[0]:
>>>                 ranked_label['weight'] = ranked_label['weight'] * 5
>>>             ranked_labels.append(ranked_label)
>>>         ranked_labels = sorted(ranked_labels, key=lambda label: 
>>> label['weight'], reverse=True)
>>>         if len(ranked_labels) == 0:
>>>             ranked_labels.append({
>>>                 'weight': 1,
>>>                 'value': ConceptValue()
>>>             })
>>>         return ranked_labels[0]['value'] 
>>
>>
>> as a test, you might try replacing the old method with the new one.
>> Also like I mentioned before, I would create prefLabels for all your 
>> Arabic concepts.
>>
>> If that fixes the issue, I can update the v3 code accordingly and you 
>> could then update your package from that.
>>
>> Hope that helps.
>> Cheers,
>> Alexei
>>
>>
>> Director of Web Development - Farallon Geographics, Inc. - 971.227.3173
>>
>> On Fri, Jun 10, 2016 at 8:19 AM, <[email protected]> wrote:
>>
>>> That's what we had done in the beginning Alexei. However, for some 
>>> unclear reason, it would appear that Arches selects among prefLabels across 
>>> languages - so when we had all labels as prefLabels we ended up having some 
>>> concepts in Arabic and some in English. I was only able to fix that by 
>>> selecting altLabels instead. Any idea of why that error might have been 
>>> occurring?
>>>
>>> Andrea
>>>
>>> On Thursday, June 9, 2016 at 5:40:54 PM UTC+1, Alexei Peters wrote:
>>>>
>>>> Hi Andrea,
>>>> Instead of using altLabels for the Arabic language, you should use 
>>>> prefLabels.  Each language can (and should) specify a prefLabel.  Once you 
>>>> do that the system should be able to discern the correct label.  
>>>> I'll try and send another email with more detail on how to set up an 
>>>> end point to switch the language.
>>>> Cheers,
>>>> Alexei
>>>>
>>>>
>>>> Director of Web Development - Farallon Geographics, Inc. - 971.227.3173
>>>>
>>>> On Wed, Jun 8, 2016 at 7:43 AM, <[email protected]> wrote:
>>>>
>>>>> Thank you Alexei. As it happens, I had already,and successfully, set 
>>>>> up an Arabic translation of all of the static strings (the ones read by 
>>>>> Django's gettext). This works fine, though I am not too happy with having 
>>>>> Django automatically select a language based on Middleware: I'd much 
>>>>> rather 
>>>>> be able to switch languages at will by using the language dropdown in the 
>>>>> header.
>>>>>
>>>>> The major issue is how to get the app to display the alternative 
>>>>> Arabic labels that we entered in the RDM for each node and concept. Once 
>>>>> I 
>>>>> set up my custom context processor to loop through the languages in the 
>>>>> header, the two languages  will display correctly of course, but that 
>>>>> won't 
>>>>> be enough  unless I build the language dropdown within a form that, when 
>>>>> posted, leads the app to switch from prefLabels in en_US to altLabels in 
>>>>> ar. *This* is the point on which I would really welcome your input. 
>>>>> Have you already written some code to manipulate label visualisation?
>>>>>
>>>>> Best,
>>>>>
>>>>> Andrea
>>>>>
>>>>> On Monday, June 6, 2016 at 10:15:13 PM UTC+1, Alexei Peters wrote:
>>>>>>
>>>>>> Hi Andrea, 
>>>>>> You'll actually have to do several things to present the site in 
>>>>>> another language.
>>>>>>
>>>>>>    1. You'll have to add supply your own version of the 
>>>>>>    template/header.htm file and as you mentioned loop through the 
>>>>>> languages 
>>>>>>    provided by the system.  To do that you'll probably want to add a 
>>>>>> context 
>>>>>>    processor that get's the language information from the database.  See 
>>>>>>    arches/app/utils/context_processors.py for examples.  Once you've 
>>>>>> created 
>>>>>>    that, then add a reference to it in the TEMPLATE_CONTEXT_PROCESSORS 
>>>>>> section 
>>>>>>    of settings.py.  Once you've done this you should be able to access 
>>>>>> the 
>>>>>>    languages from your new header.htm template.
>>>>>>    2. In settings.py go to MIDDLEWARE_CLASSES and uncomment the 
>>>>>>    line: 'django.middleware.locale.LocaleMiddleware'
>>>>>>    3. Read the section entitled "How Django discovers language 
>>>>>>    preference" in the reference documentation found here: 
>>>>>>    https://media.readthedocs.org/pdf/django/1.6.x/django.pdf . There 
>>>>>>    are several ways to set the language, but the easiest might be to set 
>>>>>> a 
>>>>>>    cookie.
>>>>>>
>>>>>> Once you've done those things you should be well on your way to 
>>>>>> displaying your site in Arabic.
>>>>>> Chees,
>>>>>> Alexei
>>>>>>
>>>>>>
>>>>>> Director of Web Development - Farallon Geographics, Inc. - 
>>>>>> 971.227.3173
>>>>>>
>>>>>> On Mon, Jun 6, 2016 at 7:12 AM, <[email protected]> wrote:
>>>>>>
>>>>>>> I am not sure I explained myself correctly Adam. Let me try again: 
>>>>>>> we have translated our entire platform in Arabic, including both the 
>>>>>>> static 
>>>>>>> strings which Django reads via the .mo file and our nodes and concepts. 
>>>>>>> The 
>>>>>>> translations for the latter two have been entered via the RDM as 
>>>>>>> altLabels 
>>>>>>> selecting Arabic as a language. Arabic had been previously added as a 
>>>>>>> language via the Django admin panel (Models -> d_languages).
>>>>>>>
>>>>>>> Now, what I want to do is to be able to select the appropriate app 
>>>>>>> language in the header dropdown so that, when I select Arabic, I get 
>>>>>>> the 
>>>>>>> whole app to be shown in Arabic. Do I have to write this whole class 
>>>>>>> from 
>>>>>>> scratch? Or does something exist already to support multilingual apps?
>>>>>>>
>>>>>>> Andrea
>>>>>>>
>>>>>>>
>>>>>>> On Wednesday, June 1, 2016 at 10:38:48 PM UTC+1, Adam Cox wrote:
>>>>>>>>
>>>>>>>> Hi Andrea, technically this is possible, but I don't think it would 
>>>>>>>> do what you are hoping... The Languages dropdown is meant to be 
>>>>>>>> configured 
>>>>>>>> to allow the user to change the app's interface language, while the 
>>>>>>>> language concepts are only meant to be attributes for a resource (the 
>>>>>>>> language that an Information Resource is written in, for example).
>>>>>>>>
>>>>>>>> Adam
>>>>>>>>
>>>>>>>> On Wednesday, May 25, 2016 at 12:59:08 AM UTC-6, 
>>>>>>>> [email protected] wrote:
>>>>>>>>>
>>>>>>>>> Hi All,
>>>>>>>>>
>>>>>>>>> I am in need to change the static 'Languages' dropdown menu in the 
>>>>>>>>> header.htm template to a dynamic one looping through the list of 
>>>>>>>>> languages 
>>>>>>>>> in the concepts.d_languages table. Has someone already written this 
>>>>>>>>> code ? 
>>>>>>>>> I couldn't figure out how to read the language table via Django tags. 
>>>>>>>>>
>>>>>>>>> Best,
>>>>>>>>>
>>>>>>>>> Andrea
>>>>>>>>>
>>>>>>>> -- 
>>>>>>> -- To post, send email to [email protected]. To 
>>>>>>> unsubscribe, send email to [email protected]. For 
>>>>>>> more information, visit 
>>>>>>> https://groups.google.com/d/forum/archesproject?hl=en
>>>>>>> --- 
>>>>>>> You received this message because you are subscribed to the Google 
>>>>>>> Groups "Arches Project" group.
>>>>>>> To unsubscribe from this group and stop receiving emails from it, 
>>>>>>> send an email to [email protected].
>>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>>
>>>>>>
>>>>>> -- 
>>>>> -- To post, send email to [email protected]. To unsubscribe, 
>>>>> send email to [email protected]. For more information, 
>>>>> visit https://groups.google.com/d/forum/archesproject?hl=en
>>>>> --- 
>>>>> You received this message because you are subscribed to the Google 
>>>>> Groups "Arches Project" group.
>>>>> To unsubscribe from this group and stop receiving emails from it, send 
>>>>> an email to [email protected].
>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>
>>>>
>>>> -- 
>>> -- To post, send email to [email protected]. To unsubscribe, 
>>> send email to [email protected]. For more information, 
>>> visit https://groups.google.com/d/forum/archesproject?hl=en
>>> --- 
>>> You received this message because you are subscribed to the Google 
>>> Groups "Arches Project" group.
>>> To unsubscribe from this group and stop receiving emails from it, send 
>>> an email to [email protected].
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
>>

-- 
-- To post, send email to [email protected]. To unsubscribe, send 
email to [email protected]. For more information, 
visit https://groups.google.com/d/forum/archesproject?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Arches Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to