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.
