Jump to content
  • 0

Meertalige user interface maken?


Wim Janin

Question

Dag Menno,

op dotfmp in Berlijn gaf je even inzicht in een leuk concept: via een centrale vertaaltabel heb je ervoor gezorgd dat elk label dat je op een layout zet, eigenlijk uit die vertaaltabel komt.

Nu vroeg ik me af:

  • hoe zet je die referenties concreet op een layout?
  • en hoe zorg je ervoor dat die labels zichtbaar blijven, als je in Find mode geraakt?

Op vraag 1 denk ik in deze richting:

  • als veld: naah, dan heb je vanuit elke tabel een link nodig naar die vertaaltabel, en moet je heel erg zorgen dat niemand er ooit kan in schrijven
  • als tekst label, met <<tabel::somefield>> referentie: ca va, maar die ben je kwijt als je in Find modus gaat, juist?
  • als button bar met één element erin? Zou kunnen, en dan kan je zelfs een CF aanroepen, die één groot centraal JSON object bevraagt & een label vertaalt. Zo?
  • nog iets anders? Hmmm...

Benieuwd naar jouw oplossing!

Link to comment

4 answers to this question

Recommended Posts

  • 0

Ben zo vrij om even mijn oplossing te delen 😀

De truc zoals ik het toepaste is uit de tabel alle vertalingen van de gekozen taal bij aanvang in de sessie in een globaal veld te laden met x herhalingen. Je neemt dan overal ernaar verwijzen, waarbij je steeds het herhalingsnummertje gebruikt. Dit gaat razendsnel.

Werkt ook in zoekmodus, dialogen, calculaties, etc. Omdat het een global is hoef je niet te malen om de relaties. Enkel en alleen om de herhalingnummers.

In de vertaal tabel is elke record dus een taal-element, met een vertalingenveld met x-herhalingen, waarin de vertalingen zijn ondergebracht. Elke herhaling is een taal.

De referentie heeft dus de vorm: <<lg::tr[3]>>  (hou het zo kort mogelijk!)

Een nieuwe taal laden is even de globaal vullen met één van de herhalingen van het vertalingenveld.

Het indexnummer (herhalingsnummer) is hier natuurlijk erg belangrijk. Het verwijderen van een record uit de tabel is funest. Inderdaad beheer en redactie van de vertalingen heel goed afschermen.

Link to comment
  • 0
7 hours ago, Wim Janin said:
  • hoe zet je die referenties concreet op een layout?
  • en hoe zorg je ervoor dat die labels zichtbaar blijven, als je in Find mode geraakt?

De labels staan in een aparte tabel met global-fields, voor elk label is er een apart veld met de naam van het label. De tabel heet bij mij simpelweg "Labels", maar in de relatie-grafiek noem ik deze "L" omdat die naam lekker kort is :-).

Bij het opstarten vul ik met een scriptje en de ingesteld taal alle global-fields met de vertaling van het label. Omdat deze velden globaal zijn blijven ze hun waarde tonen in elke modus van het bestand. Een relatie naar de table-occurrence "L" is hier nooit nodig, omdat alle velden globals zijn. Je kan de table-occurrece "L" dus in ieder bestand van het database-systeem opnemen en de (vertaalde) labels zo overal gebruiken.

Op mijn site https://www.filemakertips.nl het ik in 2015 een artikel geplaatst over dit onderwerp: https://www.filemakertips.nl/meertalig-systeem/ met een voorbeeldbestand om te downloaden

Link to comment
  • 0

Het is erg leuk en leerzaam om de benaderingen te vergelijken.  Wat betreft mijn benadering:

  • ik heb één tabel met waarin alle taal-elementen worden opgenomen. Een record omvat alle vertalingen. je hebt daardoor ook het redactionele overzicht. 
  • dus niet alleen veldnamen: alles waar een stukje vertaald tekst moet worden getoond.
  • voor toevoegen van nieuwe elementen hoef je geen velden aan te maken, maar een nieuw record!
  • groot nadeel: er is geen betekenisvolle referentie als je taal-elelement gebruikt: alles hangt aan de nummers. 
  • ook is het mogelijk om [labels] in de taal-elementen mee te nemen, zodat je ook volzinnen met ingevulde data kunt presenteren (wat relevant kan zijn in bijv. dialogue boxes)

 

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...