Avatar billede Mik2000 Professor
12. marts 2019 - 01:07 Der er 8 kommentarer og
5 løsninger

System med flere sprog best practise

Hej

Hvis jeg vil lave et system hvor de faste ting skal oversættes vil flere sprog - hvad er så bedste metode

Har fundet lidt forskelligt

GetText
Pot, po og mo filer

Defines i PHP

Database tabel med oversættelser

Men er helt åben for andre metoder også der er smartere.

Hvad er best practise og hvilken vej skal man gå?
Avatar billede arne_v Ekspert
12. marts 2019 - 01:57 #1
gettext
Avatar billede Mik2000 Professor
12. marts 2019 - 22:17 #2
Super
Jeg vil lige være sikker for kunne se nogle af de ting der lå var flere år gamle

Kender du nogle gode steder at komme igang med det på den rigtige måde

Jeg koder lige nu i JetBrains løsninger
Avatar billede Mik2000 Professor
12. marts 2019 - 22:38 #3
Jeg håber virkelig du har nogle gode ressourcer eller lign. for der er ikke meget information når man skal igang.
Avatar billede arne_v Ekspert
13. marts 2019 - 00:08 #4
Proev og google:

php i18n gettext

eller bare

php i18n
Avatar billede Mik2000 Professor
19. marts 2019 - 14:59 #5
Har nu fået tingene til at virke - men har et problem med at den cacher min .mo fil, så ændringer ikke kommer med.

Jeg kan ændre navn, men giver jo heller ikke meget mening af skulle gøre hver gang noget oversættes.

Nogen ide til hvordan man kan løse det?
Avatar billede arne_v Ekspert
20. marts 2019 - 01:56 #6
Der er to potentielle problemer:
1) PHP output er cachet i browser eller proxy server og PHP bliver derfor slet ikke koert. Det er et helt standard cache problem ikke specifikt for i18n.
2) Apache/mod_php cacher i18n data. Det er et i18n specifikt problem og det er et problem som har drillet mange.

Min kommentar til #2 er:
- for udvikling kan du bare genstarte Apache
- for produktion boer du ikke opdatere de filer saa ofte
Avatar billede Mik2000 Professor
20. marts 2019 - 14:13 #7
Okay - hvad gør man så I produktion når der f.eks. udvides noget eller lign. og den skal opdaterer?
Er man så nødt til at genstarte
Avatar billede arne_v Ekspert
20. marts 2019 - 14:43 #8
Ja. Jeg mener at det er normalt med lidt nedtid i forbindelse med en opdatering.

Nye PHP filer, aendringer i databasene, nye MO filer.

Det er tricky at lave det uden nedtid.
Avatar billede Mik2000 Professor
21. marts 2019 - 00:01 #9
Ja det er selvfølgelig rigtigt. Virker bare rigtig håbløst i et ellers super smart system at det er eneste mulighed ;)

Jeg faldt over denne da jeg søgte - nogen erfaring med om det kan løse noget?
apc_clear_cache()
http://php.net/manual/en/function.apc-clear-cache.php
Avatar billede arne_v Ekspert
21. marts 2019 - 02:17 #10
APC har ikke noget med det jer at goere.

APC cacher PHP fortolkning mellemstadie kode.
Avatar billede Mik2000 Professor
22. marts 2019 - 15:26 #11
Okay super - tak for hjælpen :)

Så nogle der skrev problemet kun var på PHP med FPM og andre der skriver det kun er på Apache og ikke på nginx

Har du nogen erfaring med det?
Avatar billede arne_v Ekspert
22. marts 2019 - 18:00 #12
Jeg er ikke en ekspert i PHP execution models.

Men cache virker jo kun (eller i dit tilfaelde - giver kun problemer) hvis cache bevares mellem PHP kald.

Det goer den med Apache multithreaded og mod_php.

Det goer den ikke med gammeldags CGI (uanset web server).

Jeg tror at den goer det med FastCGI (og ogsaa FPM varianten).
Avatar billede Mik2000 Professor
22. marts 2019 - 19:26 #13
Mange tak for alt hjælpen med det :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester