Localizasion is not implemented.

36 views
Skip to first unread message

Henrik Glensbo

unread,
Feb 10, 2021, 10:35:15 AM2/10/21
to CodenameOne Discussions
If you are experiencing an issue please mention the full platform your issue applies to:

Product Version: Apache NetBeans IDE 12.2

Updates: NetBeans IDE is updated to version NetBeans 8.2 Patch 2

Java: 1.8.0_281; Java HotSpot(TM) 64-Bit Server VM 25.281-b09

Runtime: Java(TM) SE Runtime Environment 1.8.0_281-b09

System: Mac OS X version 10.14.6 running on x86_64; UTF-8; da_DK (nb)

User directory: /Users/xxxxx/Library/Application Support/NetBeans/12.2

Cache directory: /Users/xxxxx/Library/Caches/NetBeans/12.2


I am experimenting with the toDoApp

I have tried to apply the code from the video: https://codenameone.teachable.com/courses/115309/lectures/3014342.

The simulator crashes and highlights the line: UIManager.getInstance().setBundle(theme.getL10N("I","dk")); I have tried to place the script several places but it has not helped.

I have made the following change to Properties: -Duser.language=dk, and made a list dk which looks like this csv: Key,dk,en,iw,
"1. {Line2=more..., Line1=Entry 1}","1. {Line2=more..., Line1=Entry 1}        1. {Line2=more..., Line1=Entry 1}    ","1. {Line2=more..., Line1=Entry 1}","",
"2. {Line2=more..., Line1=Entry 2}","2. {Line2=more..., Line1=Entry 2}","2. {Line2=more..., Line1=Entry 2}","2. {Line2=more..., Line1=Entry 2}",
"3. {Line2=more..., Line1=Entry 3}","3. {Line2=more..., Line1=Entry 3}","3. {Line2=more..., Line1=Entry 3}","3. {Line2=more..., Line1=Entry 3}",
"@rtl","","","true",
"Add Task","Ny opgave","Add Task","הוסף משימה",
"Button","Button","Button","Button",
"Capture Photo","Vælg foto","Capture Photo","צל� תמונה",
"Description","Beskrivelse","Description","תי�ור",
"Entry 1","Nr. 1","Entry 1","",
"Entry 2","Nr. 2","Entry 2","",
"Entry 3","Nr. 3","Entry 3","",
"Import JSON","Hent JSON","Import JSON","יב� JSON",
"Import XML","Hent XML","Import XML","יב� XML",
"MultiButton","Flerfunktions knap","MultiButton","",
"My task","Min opgave","My task","משימות שלי",
"New Task","Ny opgave","New Task","משימה חדשה",
"Settings","Indstillinger","Settings","הגדרות",
"Tasks","Opgaver","Tasks","משימות",
"Title","Titel","Title","כותרת",
"Todo","Opgave","Todo","משימות",
"Toggle Theme","Skift tema","Toggle Theme","החלף מר�ה",
"cancel","slut","Cancel","בטל",
"details regarding my task","detaljer om min opgave","details regarding my task","פרטי� לגבי המשימה",
"edit","rediger","Edit","ערוך",
"menu","menu","Menu","תפריט",
"more...","mere....","more...","עוד...",
"ok","ok","OK","�שר",
"select","vælg","Select","בחר",


What am I doing wrong - thanks in advance

Shai Almog

unread,
Feb 10, 2021, 9:53:39 PM2/10/21
to CodenameOne Discussions
Did you imported the CSV data into the designer tool?
Does the CSV appear correctly in the designer itself?
How does the localization look in the designer UI, can you include a screenshot of that?

Shai Almog

unread,
Feb 12, 2021, 12:07:05 AM2/12/21
to CodenameOne Discussions
You sent the replies privately to me instead of the group. Please try to send to the group to keep the discussion thread as I often miss private replies.
It looks like in the theme.getL10N() call the first parameter is incorrect since the bundle name is: "Localization (L10N) 1".

Henrik Glensbo

unread,
Feb 12, 2021, 12:21:02 AM2/12/21
to codenameone...@googlegroups.com

At Shai Almog

Sorry for sending to the wrong mail - and thanks for your quick reply. I will change accordingly and revert if there is still a problem.

Regards Henrik

--
You received this message because you are subscribed to the Google Groups "CodenameOne Discussions" group.
To unsubscribe from this group and stop receiving emails from it, send an email to codenameone-discu...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/codenameone-discussions/189ab186-58c8-4e98-a784-ac4ce0f5b0a6n%40googlegroups.com.
--

Henrik Glensbo
Lodkrog 10
4684 Holmegaard
allergiskhverdag.dk
stofskiftesygdom.dk
dengodeklassekammerat.dk

Henrik Glensbo

unread,
Feb 12, 2021, 7:06:57 AM2/12/21
to codenameone...@googlegroups.com
At Shai Almog

I have changed the name of the bundle to Localization (L10N) and
tried to attach it but with no avail. Still when I look in
the codename one designer - themes - advanced -

the preview is in Danish,
but when I run the simulator from the designer it is in English.

I still get the same error in the line:
UIManager.getInstance().setBundle(theme.getL10N("I","dk"));

Regards Henrik

Den 12/02/2021 kl. 06.07 skrev Shai Almog:

Shai Almog

unread,
Feb 13, 2021, 1:00:26 AM2/13/21
to CodenameOne Discussions
Are you sure you named the entry within the theme "l" or is it "I" (notice uppercase i and Lowercase L look the same in some fonts).
Did you create a separate theme or is this part of a single theme file?

Notice you can inspect the theme object in the debugger at that line and you should be able to find all the objects within it. This will let you verify that the content is stored within the theme and at what hierarchy.

Henrik Glensbo

unread,
Feb 13, 2021, 10:18:06 AM2/13/21
to codenameone...@googlegroups.com

At Shai Almog

Thanks for your reply and your help
 
As you say "ignore" in the video I have used a big I as in Iris. (And tried the other possibilities still no positive result)
 In the ToDoApp you can toggle the themes. I have not made any changes to the themes.
 
 When trying to debug the project ToDoApp the debugger says there is no main file - but when I remove the localisation script/snippet - the project debugs without any problem.

I will continue to look for possibilities, but for now, I think you have done enough as my skills in Java are close to non-exsitent.

I will revert

Regards Henrik

--
You received this message because you are subscribed to the Google Groups "CodenameOne Discussions" group.
To unsubscribe from this group and stop receiving emails from it, send an email to codenameone-discu...@googlegroups.com.

Shai Almog

unread,
Feb 13, 2021, 8:48:21 PM2/13/21
to CodenameOne Discussions
Do you mean it stopped working when you added the -Duser.language=dk ?
Where did you add this to the project?

Henrik Glensbo

unread,
Feb 15, 2021, 9:02:16 AM2/15/21
to codenameone...@googlegroups.com

At Shai Almog

Tried the following:

You need to fix the classpath problem in Netbeans: https://stackoverflow.com/questions/23532966/the-libs-copylibs-classpath-property-is-not-set-up/66079126#66079126

Fresh import of the original ToDoApp

Change of build.xml - 1.5 to 1.8

Changed name of Localization (L10N) 1 to Localization (L10N) and synced with UI (you can now see the Danish text in the Designer.)

Will not run in the simulator from the script

Project properties changed to 1.8 from 1.6

Run -> wm options set -Duser.language=dk

Still not able to run because of several deprecated services

Changed Vector to ArrayList

Changed Hashtable to HashMap except from this line:

 Hashtable<String, Object> h = p.parse(new InputStreamReader(is));//change to Hashtable?? solves error

 //entries.addElement(value); entries commented out but are there an alternative??

Now the simulator runs in English. So I am back to where I was before.

Entering this code in toDoApp.java:

public void start(Resources theme){

theme = UIManager.initFirstTheme("/theme");
       
       String lang = L10NManager.getInstance().getLanguage();
       if(lang != null){
           lang = lang.toLowerCase();
           switch(lang){
               case "da":
               case "dk":


                   UIManager.getInstance().setBundle(theme.getL10N("I","dk"));

                   break;
           }
       }
      Toolbar.setGlobalToolbar(true);

Not totally as when I run the Simulator after that it enters a black screen on the Simulator and then this error message: Couldn't find a main or a startup in com.codename1.demos.todo.TodoApp

So stuck again -

But I will search on for a solution

Thanks for any input

Henrik

Shai Almog

unread,
Feb 15, 2021, 9:50:12 PM2/15/21
to CodenameOne Discussions
If you changed the name to "Localization (L10N)" then this:

UIManager.getInstance().setBundle(theme.getL10N("I","dk"));

Should be:
UIManager.getInstance().setBundle(theme.getL10N("Localization (L10N)","dk"));

No?

Henrik Glensbo

unread,
Feb 18, 2021, 6:13:46 AM2/18/21
to codenameone...@googlegroups.com

At Shai Almog

What ever I do the error is still:

error: cannot find symbol


                   UIManager.getInstance().setBundle(theme.getL10N("Localization (L10N)","dk"));

  symbol:   method getL10N(String,String)
  location: variable theme of type Object

This may be due to changing Vector to ArrayList and Hashtable to HashMap - but I'm not sure. I will search on to see if I can find a solution. But I feel I circle round and end up the same place as I started, but til missing the solution.

((I also tried this solution: (https://stackoverflow.com/questions/62182526/codename-one-accessing-localized-string-resources)

theme = UIManager.initFirstTheme("/theme");
String lang= L10NManager.getInstance().getLanguage();

UIManager.getInstance().setBundle(theme.getL10N("Localization (L10N)",lang));))

Thanks for your help

Regards

Henrik

Shai Almog

unread,
Feb 18, 2021, 11:47:02 PM2/18/21
to CodenameOne Discussions
The error says:
"variable theme of type Object"

theme is defined as type "Resource" by default in Codename Ones generated stub. Fine the resource object and use that or make sure theme is of the right type.
Reply all
Reply to author
Forward
0 new messages