Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Hello community.
I made statements under Qlikview French.
I wanted to make their translation into English.
But this should be done dynamically.
I implore your help for that.
Thank you
Hi,
Have a look at the Finance Controlling that comes with the installation. it has the language conversion function.
This application named Finance Controlling.qvw imports another application named financecontrolling.qvw .
I don't find this file (financecontrolling.qvw) in the tree of Qlikview.
Thanks
Hi,
Are you looking at the sample in QV version 9?
I don't think you can do the "plug and play" from tha sample. All you need is to use the logic.
What it does is, it has an unlink table, to store some variables, and in the properties of the flag (Actions tab), it actually check what variable or value has been selected and then change the display of the label. and you might also need if-else to check what are the variable selected and do appropriate conversion.
Please can someone explain me the translation system using in Finance controlling application?
Thanks in advance.
Hello, actually there are two different and flexible solutions in the qlikview samples:
1. Finance Controlling:
=
fieldvalue($(vLanguage),1001)
2. Films:
= Minstring
(if(Reference = 'DIRECTOR', $(vLanguage)))
Both times there is the need (which makes sense) to have a table (inline or excel etc) where you have in one line the original name and in the following columns of the record the translated values. Further you need to define a variable that is changed by the user and which contains the actual interface language.
The different languages are loaded from an external table it can look line this (in the load script):
Umbenennungen:
LOAD
Reference, FIELD_NAME,LANGUAGE1
,
EN
,
DE
,
FR
FROM
translation.xls (biff, embedded labels, table is Sheet1$); The solution #1 seems to be faster. But it is risky. There is no reefrence to the actual field name that is used in a Listbox etc. Further, where there is one or several lines emply in the external excel file it is not the line 1001 (just a sample number) that will be taken for translation.Solution #2 is more safe. It is slower. But still it is not flexible enough. In case I change the field name of the listbox I have to change the filed name in the Title line, too.
Hope this helps for the explanation.
If there is a solution that it is somehow possible to retrieve the actual selected value (selected field name) let us know.
Thanks, i had studied this functionnality since ....
Thanks. I would like to keep the question open.
If there is a solution where it is somehow possible, to retrieve the actual selected value (selected field name) let us know.
To do this you must use a macro VB.
See the following code:
'Sélectionner la langue allemande
sub Selektiere_DE
ActiveDocument.Fields("Sprache").select "DE"
end sub
'Selectionner la langue anglaise
sub Selektiere_EN
ActiveDocument.Fields("Sprache").select "EN"
end sub
'Sélectionner la langue espagnole
sub Selektiere_ES
ActiveDocument.Fields("Sprache").select "ES"
end sub
'Sélectionner la langue francaise
sub Selectionner_FR
ActiveDocument.Fields("Sprache").select "FR"
end sub
Now you must to define in Document properties >> Tab Triggers >> Actions in Open Document
you select the macro of your default Value.
Thanks.
If you have any question, don't hesitate.
Thank you for the Macro Code. But I am looking for something different. And I don't think it is available right now.
Suppose there are two or more Listboxes.
LB1 shows field: DIRECTOR (engl: DIRECTOR, german: DIREKTOR) and
LB2 shows field PRODUCT (engl: PRODUCT, german: PRODUKT) (sorry I dont know the French translation).
Without translation I (Solution #1) would setup
LB1: Title: <Fieldname> - Field: DIRECTOR
LB2: Title: <Fieldname> - Field PRODUCT
With this option I can't switch the language.
To change the language either I can put the formula (Solution #2):
= fieldvalue(Language,10) as entry for Title in the listbox LB1 with the field: DIRECTOR. (The same for LB2 with PRODUCT).
I load the translation from an external file and in Line/Record #10 there is DIRECTOR and DIREKTOR.
When changing the field language through a Macro as suggested it will switch between DIRECTOR (EN) and DIREKTOR (DE). But, I dont see in the Listbox what is behind 10 (when the file is loaded I will see whats coming). Further, when I by accident delete a record before (suppose record #5) then I will see the entry from record #1.
Another option (Solution #3), but this seems to work only work a variable e.g. vLanguage
= Minstring(if(Reference = 'DIRECTOR', $(vLanguage))) in LB1 and
= Minstring(if(Reference = 'PRODUCT', $(vLanguage))) in LB2.
This solution is more secure because I see exactly that I am looking for the translation of DIRECTOR and PRODUCT.
But still I have to make different entries in the different Listboxes (and it seems to be slower).
An option like:
= Minstring(if(Reference = <Fieldname>, $vLanguage))) (Fieldname comes from what is selected in the actual listbox)
would mean I have the same entry in all the Listboxes and I can be sure it is always looking for the value in the Field (Name as it comes from the database) of the Listbox. It is less work and more safe but posibly slower. If theer is a solution I would appreciate. Otherwise every Listbox has to be openened and an individual entry has to be added.