Thanks Bojan - and thanks Alexei. I have managed to manipulate labels in both the report page and in the E55 dropdowns. However, I am still trying to find out how to manipulate the labels of the already selected branches. Where does the JSON resource graph (which is read by branch-list.js as an observable) get created ? I suspect this is what I should be looking for.
Thanks again, Andrea On Friday, June 10, 2016 at 9:50:37 PM UTC+1, Bojan Kastelic wrote: > 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.
