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, zerbini...@gmail.com 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, <zerbini...@gmail.com> 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, <zerbini...@gmail.com> 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, <zerbini...@gmail.com> 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, 
>>>>>>>> zerbini...@gmail.com 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 arches...@googlegroups.com. To 
>>>>>>> unsubscribe, send email to archesprojec...@googlegroups.com. 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 archesprojec...@googlegroups.com.
>>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>>
>>>>>>
>>>>>> -- 
>>>>> -- To post, send email to arches...@googlegroups.com. To unsubscribe, 
>>>>> send email to archesprojec...@googlegroups.com. 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 archesprojec...@googlegroups.com.
>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>
>>>>
>>>> -- 
>>> -- To post, send email to arches...@googlegroups.com. To unsubscribe, 
>>> send email to archesprojec...@googlegroups.com. 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 archesprojec...@googlegroups.com.
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
>>

-- 
-- To post, send email to archesproject@googlegroups.com. To unsubscribe, send 
email to archesproject+unsubscr...@googlegroups.com. 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 archesproject+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to