Simpele taal array werkt niet

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

BI Ontwikkelaar

Ben jij gek op het verzamelen en analyseren van informatie? En wil je met deze passie graag zorgorganisaties meer inzicht verschaffen? Lees dan snel verder. Jouw baan Als BI ontwikkelaar Datawarehouse help je zorgorganisaties bij het inzichtelijk maken en grafisch presenteren van hun data. De ene dag werk je aan rapportages en kubussen, een dag later spreek je af met je collega’s om je in een ingewikkeld zorgproces te verdiepen. Je verwerkt informatiewensen samen met onze ontwikkelaars in de software. Afwisselend en uitdagend, want je werkt aan meerdere projecten tegelijk. Wat voor projecten? Dat stemmen we zoveel mogelijk af op

Bekijk vacature »

Java developer

Functie­omschrijving Dé Java developer van de Belastingdienst. Onze 300 Java developers realiseren applicaties die direct van zeer grote invloed zijn op de Nederlandse samenleving! De online aangifte-applicatie is er bijvoorbeeld één waarmee we miljoenen mensen bereiken en waarmee we zelfs de Computable award wonnen voor het beste ICT-project binnen de overheid. En onze Javabouwers werken ook voor de Douane of de FIOD van de Belastingdienst. Dat gebeurt in zo'n 70 groot- en kleinschalige projecten in bijna 100 multidisciplinaire scrumteams. We werken in een Agile-ontwikkelomgeving met standaardisatie op proven technology, dat houvast en zekerheid biedt om die zo belangrijke en goed

Bekijk vacature »

coördinator kantoorautomatisering (32-36 uur

Breng jij onze kantoorautomatisering naar een hoger (online) plan? Jouw uitdaging De NTS heeft ruim 100 medewerkers. Om onze mensen hun werk te laten doen hebben ze een goed werkende werkplek nodig. Dat bestaat uit hardware: zoals pc, laptop, telefoon, tablet, software zoals Office365 suite en aanvullende bedrijfsapplicaties en een netwerk. We zijn druk bezig met het vernieuwen van onze kantoorautomatisering; we willen onze medewerkers overal, altijd op elk device kunnen laten samenwerken. Om hierin de regie te kunnen nemen zoeken we jou als coördinator kantoorautomatisering! De kantoorautomatiseringsondersteuning werd in het verleden door een Shared Service geleverd. Het Shared Service wordt opgeheven en de

Bekijk vacature »

Senior applicatieontwikkelaar

Ben jij een gedreven applicatieontwikkelaar met minimaal drie jaar werkervaring? En wil je een uitdagende baan met impact én jezelf breed ontwikkelen? Bij UPS bouw je mee aan complexe systemen die wereldwijd worden gebruikt en krijg je alle ruimte om nóg beter te worden in je vak. Dit ga je doen In een dynamisch scrumteam werk je aan de hand van processen en technologieën zoals CI/CD en DevOps aan het behalen van jullie doelen. Je bent betrokken bij alle facetten van applicatieontwikkeling: van ontwerpen en bouwen tot testen en implementeren. Je levert ontwerpen die passen bij de onderliggende frameworks en

Bekijk vacature »

C++/UI Software Developer

In this role, you have the opportunity to Get to know that the average heart beats about 100.000 times daily. And that more than 7 million people each year die from coronary heart disease - so, innovation, prevention, diagnosis and treatment is essential to reduce this number and improve the life of the patient. At Philips IGT-Devices we are working on industry leading solutions helping clinicians on deciding, guiding, treating and confirming the right therapy for each patient in real-time during image-guided therapies (IGT). Are you an enthusiastic Software Developer with relevant experience in the software medical applications industry looking

Bekijk vacature »

Mobile App Developer

Over Compaan Compaan (www.uwcompaan.nl) is een jong bedrijf van ongeveer 20 medewerkers dat is gevestigd in Haarlem. We ondersteunen zorgverleners in digitaal contact met hun cliënten, met name door middel van beeldzorg. Dit gaat meestal via de Compaan-tablet, een tablet die speciaal gemaakt is voor ouderen die niet met een gewone computer overweg kunnen. Verder hebben we vele particuliere klanten die via de Compaan-tablet contact met hun familie en vrienden onderhouden. Over de functie We zijn per direct op zoek naar een nieuwe collega die gaat helpen meebouwen aan de native apps van Compaan op zowel iOS als Android. Dit

Bekijk vacature »

PHP Developer Medior Hypermodern pand

Functieomschrijving Ben jij een medior PHP Developer, focus jij je doorgaans op de back-end en loop jij warm voor het doorontwikkelen van een zeer grote applicatie met enorme MySQL databases en veel complexiteit? Lees dan snel verder! Het onderhouden, doorontwikkelen en testen van een zeer complexe SaaS-oplossing, zonder schaalbaarheid en platformonafhankelijkheid uit het oog te verliezen; Het ontwikkelen van maatwerk back-end oplossingen in PHP en participeren in een Scrumteam; Het participeren in een migratie naar het Symfony framework; Participeren in diverse projecten t.b.v. de optimalisatie van het SaaS-product; Het opzetten van API koppelingen met externe partijen;. Het wegwerken van legacy

Bekijk vacature »

SAP S/4 Digital EAM Consultant

SAP S/4 Digital EAM Consultant (PM, CS, PS, FSM, AIN) As an SAP S/4 Digital EAM Consultant you will assess, design and deliver a full end-to-end digital experience to our asset intensive clients for Enterprise Asset Management processes. You will use your SAP S/4 experience to collaborate with our clients in advising and ultimately transforming them into the new SAP era of intelligent assets. You will align the client’s strategic vision for Operational Excellence with SAP S/4 EAM as the key enabler in combination with SAP Asset Intelligence Network (SAP AIN), Asset Strategy and Performance Management (SAP ASPM) and Predictive

Bekijk vacature »

.NET developer worden bij onze leukste klant?

Functieomschrijving Er is daarom altijd behoefte aan nieuwe collega's op gebied van .NET Development, maar ook binnen andere takken van ontwikkeling. Daarnaast is het verloop van medewerkers heel laag: Wanneer je hier eenmaal werkt, zul je niet snel meer weg willen. De doorgroeimogelijkheden zijn onbeperkt, de opdrachten altijd uitdagend en interessant en daar bovenop zijn de arbeidsvoorwaarden ook nog eens uitstekend. Neem contact met mij op, dan plan ik op korte termijn een gesprek en dan zul je het mij je eigen ogen zien! In jouw nieuwe leasewagen rijd je straks naar de klant toe, waarbij je zelden langer dan

Bekijk vacature »

Lead .Net Developer/Architect/ Telecom/ Salary: 6.

Functieomschrijving Are you a team player that is proactive and isn’t afraid to share your opinion? Are you a .Net expert? Then advance your career in one of the coolest and most challenging Telecom companies located in, The Netherlands! As a Lead .Net Developer, you will work in a dynamic environment: You are responsible for gathering stakeholder requirements to improve the operational process; You will be translating the stakeholder requirements to suitable designs with a realistic project schedule; You will be designing models such as the logistics model; You will be discussing designs with the other architects; You will be

Bekijk vacature »

Technisch Ontwerper / Applicatie Ontwikkelaar

Technisch Ontwerper / Applicatie Ontwikkelaar Actief Wat ga je doen? Als Technisch Ontwerper / Applicatie Ontwikkelaar kom je te werken bij onze gerenommeerde klanten op projecten of opdrachten van omvang en formaat. Je bent verantwoordelijk voor het omzetten van functionele specificaties naar een technisch ontwerp, het ontwerp van programmaspecificaties voor toepassingen, de realisatie van (gewijzigde) programmaonderdelen en databestanden van toepassingen en de technische systeemtest van applicatietoepassingen. Daarnaast geef je vorm aan webpagina’s en applicaties, stel je gebruikersdocumentatie op en verleen je ondersteuning bij het oplossen van productiefouten. Tevens ben je verantwoordelijk voor het samenstellen en onderhouden van de applicatie c.q.

Bekijk vacature »

Medior PHP Developer

Als PHP Developer bij Coolblue zorg je ervoor dat onze webshops bizar snel en superstrak zijn. Hoe word ik Medior PHP Developer bij Coolblue? Als Medior PHP Developer werk je met andere development teams samen om onze webshop zo optimaal mogelijk te laten werken en onze klanten blij te maken. Hoewel je een PHP Developer bent, ben je niet vies van een beetje C# of Javascript. ‘’Ook Medior PHP Developer worden bij Coolblue? Else de Boer legt je uit hoe je dat doet.” Dit vind je leuk om te doen PHP code schrijven, maar kan je weg ook vinden in

Bekijk vacature »

Technisch Ontwerper / Applicatie Ontwikkelaar

Technisch Ontwerper / Applicatie Ontwikkelaar Actief Wat ga je doen? Als Technisch Ontwerper / Applicatie Ontwikkelaar kom je te werken bij onze gerenommeerde klanten op projecten of opdrachten van omvang en formaat. Je bent verantwoordelijk voor het omzetten van functionele specificaties naar een technisch ontwerp, het ontwerp van programmaspecificaties voor toepassingen, de realisatie van (gewijzigde) programmaonderdelen en databestanden van toepassingen en de technische systeemtest van applicatietoepassingen. Daarnaast geef je vorm aan webpagina’s en applicaties, stel je gebruikersdocumentatie op en verleen je ondersteuning bij het oplossen van productiefouten. Tevens ben je verantwoordelijk voor het samenstellen en onderhouden van de applicatie c.q.

Bekijk vacature »

DevOps Engineer

Complexe processen automatiseren: dat is jouw ding! Voor onze vestiging in Amsterdam zoeken wij een fanatieke junior of medior DevOps Engineer die met de laatste Microsoft-tools en -technieken wil werken. Jij bent gemotiveerd en draagt graag verantwoordelijkheid voor je 'eigen' scripts, infrastructuur en tools die worden ingezet om onze software te bouwen, testen, uit te rollen en uit te leveren. Jouw baan Je bent verantwoordelijk voor het ontwerpen, ontwikkelen, ondersteunen en onderhouden van de complete build en teststraat van een of meerdere van onze softwareproducten. Dit gaat om complexe ICT-producten die feilloos moeten functioneren binnen de omgeving van onze organisatie.

Bekijk vacature »

.NET developer / C# / Azure / Zorg

Functieomschrijving Ben jij een .NET Developer met minimaal 2-3 jaar ervaring en ben je toe aan de volgende stap in je carrière? Wil jij werken op het hoogste niveau en aan de slag gaan bij de .NET ontwikkel organisatie van Brabant? Dan is deze functie perfect voor jou! Als .NET Ontwikkelaar ga je: Programmeren van high-availability en high-security applicaties in C#; Samen met je teamgenoten nieuwe applicaties/diensten ontwikkelen in .NET; Overleggen met de informatie analisten en testers; Ontwikkelen van webservices (WCF); 20% van je tijd besteden aan innovatie; Deelnemen aan projecten om nieuwe ketenpartijen toe te voegen; Bouwen van unit

Bekijk vacature »
Furio Scripting

Furio Scripting

02/06/2020 11:36:17
Quote Anchor link
Beste forumleden,

Ik heb een tijdje niet geprogrammeerd en loop nu eventjes vast.

Ik heb een functie welke mij de domein extensie doorgeeft en op basis daarvan include ik in de index.php een taalbestand daar ik 14 domeinen heb welke elk een andere taal moeten weergeven:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
function getDomainLanguage()
       {
      
               // language selector
 
      $domain = strrchr (strtolower($_SERVER['HTTP_HOST']), ".");
      $domainExtension = substr($domain, strpos($domain, '.') + 1);
            
      
    switch ($domainExtension) {
        case "nl":
            include './languages/nl.php';
            break;
        case "be":
            include './languages/be.php';
            break;
        case "com":
            include './languages/en.php';
            break;
        default:
           include './languages/en.php';
    }
           }


In het taalbestand staat een array:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php

 /* Dutch language configuration */
  $lang = array (

        
  'title' => "this is a title",
  'welcome' => "Hello world",
  'language' => "The language page is in English",
  'en' => "English",
  'es' => "Spanish",
  'fr' => "French",
     );

 
  
 
 ?>


In een test.php bestand welke door de index geladewn wordt zou je denken dat je toegang hebt tot de taal array via: echo $lang['title']; maar helaas geeft die blanco.

Als ik rechtstreeks het taalbestand include in de test.php heb ik wel toegang, waar gaat het mis?

Mvg Furio
 
PHP hulp

PHP hulp

26/09/2020 00:06:45
 
Rob Doemaarwat

Rob Doemaarwat

02/06/2020 12:29:05
Quote Anchor link
Je doet je include in de function getDomainLanguage(). Binnen die functie is de variabele $lang dus bekend. Daarbuiten niet. Wil je 'm erbuiten dus ook gebruiken, dan moet je:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php

function getDomainLanguage(){
  global $lang; // <-- deze toevoegen

  //rest van code

}

?>


Overigens is include en globale variabelen meestal de eerste aanzet tot spaghetti (het zou bijvoorbeeld mooier zijn als de $lang een property van een object was), maar als het je probleem oplost ...
 
Furio Scripting

Furio Scripting

02/06/2020 12:39:43
Quote Anchor link
Rob Doemaarwat op 02/06/2020 12:29:05:
Je doet je include in de function getDomainLanguage(). Binnen die functie is de variabele $lang dus bekend. Daarbuiten niet. Wil je 'm erbuiten dus ook gebruiken, dan moet je:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php

function getDomainLanguage(){
  global $lang; // <-- deze toevoegen

  //rest van code

}

?>


Overigens is include en globale variabelen meestal de eerste aanzet tot spaghetti (het zou bijvoorbeeld mooier zijn als de $lang een property van een object was), maar als het je probleem oplost ...


Bedankt voor je reactie, dit lost het "probleem" inderdaad op! Hartelijk dank. OOP programmeren kan ik helaas niet, ik probeer het zo logisch/overzichtelijk mogelijk te houden op mijn eigen manier. Mapje met languages, functie om de taal voor het domein te pakken en de variablen gebruiken in de html voor de weergave.

Klopt het trouwens dat je wel in test.php of elk ander bestand ook de global $lang moet toevoegen alvorens het werkt?

Kan ik wel de variablen overschrijven bij een loop wat bij een constante niet werkt daarom had ik voor variablen gekozen.
Gewijzigd op 02/06/2020 12:42:55 door Furio Scripting
 
Rob Doemaarwat

Rob Doemaarwat

02/06/2020 13:11:46
Quote Anchor link
Als een globale variabele nog niet bestaat, dan bestaat ie direct na de global regel wel (default met een waarde null). Je hoeft 'm dus niet eerst "aan te maken" om 'm pas daarna via global binnen te kunnen harken (maar het mag/kan wel; liefst met een stukje commentaar er bij; dat is logischer dan dat ie opeens zomaar "uit de lucht komt vallen").
 
Thomas van den Heuvel

Thomas van den Heuvel

02/06/2020 16:20:31
Quote Anchor link
Furio Scripting op 02/06/2020 12:39:43:
Kan ik wel de variablen overschrijven bij een loop wat bij een constante niet werkt daarom had ik voor variablen gekozen.

Je kunt prima eerst uitrekenen wat de taal zou moeten zijn en dit dan eenmalig toekennen aan een constante?

Het berekenen van de taal en het vervolgens includen van een of meer taalbestanden staat in principe ook los van elkaar. Dit hoef je dus niet per se te combineren.

Wanneer je geen OOP gebruikt zou je ook in een soort van initialisatieroutine alles uit kunnen schrijven, voorzien van commentaar uiteraard. Hiervoor allemaal parameterloze functies introduceren, het kan, maar het voegt niet zoveel toe, want die code moet je dan vervolgens weer op andere plekken gaan zoeken.

In plaats van HTTP_HOST kun je misschien ook beter SERVER_NAME gebruiken. Alle HTTP-directives worden volgens mij verstrekt via de browser dus deze zijn niet echt 100% betrouwbaar.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
// mapping of domain extensions to supported languages
// these language settings should be pulled from some config

$languages = array(
    'nl'  => 'nl',
    'be'  => 'be',
    'com' => 'en',
);

$defaultLanguage = 'en';

$tld = substr(strrchr($_SERVER['SERVER_NAME'], '.'), 1);
$language = array_key_exists($tld, $languages) ? $languages[$tld] : $defaultLanguage;
define('MY_LANGUAGE', $language);
?>

Vervolgens kun je MY_LANGUAGE gebruiken voor het includen/requiren van (taal)bestanden.
 
Rob Doemaarwat

Rob Doemaarwat

02/06/2020 17:32:07
Quote Anchor link
Persoonlijk ben ik nogal een fan van de ?? operator en regular expressions en one-liners, dus ik kon het niet laten:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
define('MY_LANGUAGE',$languages[preg_replace('/^.*\\./','',$_SERVER['SERVER_NAME'])] ?? $defaultLanguage);

Maar "misschien" is bovenstaande code van Thomas toch iets duidelijker in eerste oogopslag ... ;-)
Gewijzigd op 02/06/2020 17:36:34 door Rob Doemaarwat
 
Jan R

Jan R

02/06/2020 18:18:07
Quote Anchor link
off topic
Gezien je spreekt over taalbestand.
ik weet niet of je het weet maar .be staat voor België en hier hebben we 3 talen
Nederlands, Frans en Duits.

Ook in Nederland zijn er 2 talen. Fries wordt nogal vergeten.
 
Adoptive Solution

Adoptive Solution

02/06/2020 18:43:48
Quote Anchor link
Dan testen op .frl extensie
https://nl.wikipedia.org/wiki/.frl

En waarom heeft Wallonie geen eigen TLD?
https://www.dnsbelgium.be/
 
Thomas van den Heuvel

Thomas van den Heuvel

02/06/2020 19:37:41
Quote Anchor link
Daarom is het misschien handig om van de taal op grond van TLD af te kunnen wijken. Je zou bijvoorbeeld op een NL domein expliciet Engels in kunnen stellen.

Dit sla je dan bijvoorbeeld op in een cookie ofzo, maar ook dat kun je opnemen / verder verwerken in de bovenstaande logica voor de taalselectie.
 
Rob Doemaarwat

Rob Doemaarwat

02/06/2020 22:31:35
Quote Anchor link
Of je kijkt gewoon naar $_SERVER['HTTP_ACCEPT_LANGUAGE'].
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php

//HTTP_ACCEPT_LANGUAGE bij mij "nl-NL,nl;q=0.9,en-US;q=0.8,en;q=0.7"

if(preg_match_all('/[a-z]{2}/',$_SERVER['HTTP_ACCEPT_LANGUAGE'],$matches))
  foreach($matches[0] as $match) if(in_array($match,$languages)){
    $language = $match;
    break;
  }


die($language); //bij mij "nl"


?>
 
Ivo P

Ivo P

02/06/2020 23:01:27
Quote Anchor link
en wat doet de strpos functie voor domein.co.uk ? (gaat nog over de oorspronkelijke opzet van TS)
 
Jan R

Jan R

03/06/2020 22:41:09
Quote Anchor link
Adoptive Solution op 02/06/2020 18:43:48:
En waarom heeft Wallonie geen eigen TLD?
https://www.dnsbelgium.be/

te gierig
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.