PHP Select

Her kan du få hjælp og stille spørgsmål til PHP!
Besvar
Crow
Rutineret
Rutineret
Indlæg:64
Tilmeldt:15. apr 2014, 11:24
PHP Select

Indlæg af Crow » 7. jan 2015, 14:59

Jeg har et spørgsmål til noget som kunne være meget simpelt men jeg ikke kan finde hoved og hale i og håber der er en der vil hjælpe mig lidt på rette vej :)

Hvad jeg ønsker at gøre er at skifte $A til $B når brugeren klikker på DK og at den derefter bliver i det spor indtil et andet sprog er valgt FKS EN, DE osv. men at den holder fast i det valgte sprog-

Index.php

Echo $A;

Language.php

$A = "Hello";
$B = "Hej";
$C = "Hallo";

Jeg ville virkelig værdsætte hvis nogen kunne give en god og grundig forklaring på hvordan man gør dette ^^

Crow
Rutineret
Rutineret
Indlæg:64
Tilmeldt:15. apr 2014, 11:24

Re: PHP Select

Indlæg af Crow » 7. jan 2015, 19:00

En anden tanke ville være at brugeren er redirected efter deres brower's sprog men jeg ved ikke om dette exempel vil virke på alle browsers eller om der er noget der skal sættes op på host serveren i forvejen for at det skal virke og hvordan den er brugt.

Kode: Vælg alt

$http_lang = substr($_SERVER["HTTP_ACCEPT_LANGUAGE"],0,2);
      switch ($http_lang) {
        case 'en':
          $SESSION->conf['language'] = 'english';
          break;
        case 'es':
          $SESSION->conf['language'] = 'spanish';
          break;
        default:
          $SESSION->conf['language'] = $PREFS->conf['languages'][$SESSION->conf['language_id']];
      }
også overvejet .Htaccess

Kode: Vælg alt

RewriteEngine on
RewriteCond %{HTTP:Accept-Language} (aa|ab|af|am|ar|as|ay|az|ba|be|bg|bh|bi|bn|bo|br|ca|co|cs|cy|dz|el|en|eo|es|et|eu|fa|fi|fj|fo|fr|fy|ga|gd|gl|gn|gu|ha|hi|hr|hu|hy|ia|ie|ik|in|is|it|iw|ja|ji|jw|ka|kk|kl|km|kn|ko|ks|ku|ky|la|ln|lo|lt|lv|mg|mi|mk|ml|mn|mo|mr|ms|mt|my|na|ne|nl|no|oc|om|or|pa|pl|ps|pt|qu|rm|rn|ro|ru|rw|sa|sd|sg|sh|si|sk|sl|sm|sn|so|sq|sr|ss|st|su|sv|sw|ta|te|tg|th|ti|tk|tl|tn|to|tr|ts|tt|tw|uk|ur|uz|vi|vo|wo|xh|yo|zh|zu) [NC]
RewriteRule .* htpp://www.default.com [L]
RewriteCond %{HTTP:Accept-Language} (dk) [NC]
RewriteRule .* htpp://www.danish.com [L]
RewriteCond %{HTTP:Accept-Language} (dk) [NC]
RewriteRule .* htpp://www.german.com [L]
men tror ikke jeg kan bruge rewrite rule+cond i samme .HtAccess 3 gange i træk så som i kan se er jeg ret forviret angående redirect så jeg har brug for lidt hjælp med basic + how-to som jeg håber der er en der vil hjælpe mig med :)

Jepsen
Begynder
Indlæg:18
Tilmeldt:8. jan 2015, 03:53

Re: PHP Select

Indlæg af Jepsen » 8. jan 2015, 13:42

Jeg ville nok gøre det lidt anerledes, end at have variabler, som indeholder teksten, men hvis det er det du vil:

Hav en fil for hvert land, hvor du har dine variabler og deres tilsvarende oversatte værdier.

Behold dit nuværende switch-statement, og inkluder hver enkelte sprog-fil ud fra paramteret i http language.
Tilføj her et stykke require, som inkludere filen for det givne land med variabler.

Da variabler kun virker såfremt variablerne er sat, kan du jo sagtens skifte mellem de forskellige sprog-filer.

Kode: Vælg alt

$http_lang = substr($_SERVER["HTTP_ACCEPT_LANGUAGE"],0,2);
switch ($http_lang) {
	case 'en':
		$SESSION->conf['language'] = 'english';
		require ('language.en.php');
		break;
	case 'es':
		$SESSION->conf['language'] = 'spanish';
		require ('language.es.php');
		break;
	default:
		$SESSION->conf['language'] = $PREFS->conf['languages'][$SESSION->conf['language_id']];
		require ('language.default.php');
}
Herefter skal dine sprogfiler have matchende variabler. Det kunne eksempelvis være følgende:

language.en.php

Kode: Vælg alt

$mainPageHeader = 'Welcome to our site';
$mainPageFooter  = 'Copyright © MyCompany';
# [..]
language.es.php

Kode: Vælg alt

$mainPageHeader = ' - Welcome to our site - oversat';
$mainPageFooter  = ' - Copyright © MyCompany - oversat';
Herefter udskrives det bare ved at udskrive den variable, som du vil bruge.

Jeg ville dog anvende et array fremfor variabler såfremt dit script skal udvikles således her. Det synes jeg personligt giver et bedre overblik.

Kode: Vælg alt

$LANG = array(
	'mainPageHeader' => 'Welcome to our site',
	'mainPageFooter' => 'Copyright © MyCompany'
);
Det kan herefter udskrives ved at inkludere filen og herefter

Kode: Vælg alt

echo $LANG['mainPageHeader'];
Vend endelig tilbage, hvis du har nogle spørgsmål / problemstillinger.

vh,

Crow
Rutineret
Rutineret
Indlæg:64
Tilmeldt:15. apr 2014, 11:24

Re: PHP Select

Indlæg af Crow » 8. jan 2015, 15:20

hvilken metode er bedst til at redirecte uden at give websiten en dårlig score fra googlebot under skanning og har jeg forstået disse status koder korrekt:

301: permanent redirect som kommer an på den besøgende's browser indstillinger og bruges generelt kun for at linke fks. test.dk, test.de osv. til test.com i tilfælde af du bestiller domæner for at sikre at ingen tager samme website selv på andre populære domæner og peger dem direkte til hoved websiten test.com etc. men bruges også når man flytter til nyt domæne men ejer det gamle noget tid.

302: temporært redirect som kommer an på den besøgende's browser indstillinger og bruges regulært til at redirecte sprog på google men kan også bruges mens websiten er under konstruktion.

spørgsmålet du besvarede kan kategoriseres som 302 redirect via .php ?

Kode: Vælg alt

$http_lang = substr($_SERVER["HTTP_ACCEPT_LANGUAGE"],0,2);
switch ($http_lang) {
   case 'en':
      $SESSION->conf['language'] = 'english';
      require ('language.en.php');
      break;
   case 'es':
      $SESSION->conf['language'] = 'spanish';
      require ('language.es.php');
      break;
   default:
      $SESSION->conf['language'] = $PREFS->conf['languages'][$SESSION->conf['language_id']];
      require ('language.default.php');
}

ps. mange tak for svaret ^^

Jepsen
Begynder
Indlæg:18
Tilmeldt:8. jan 2015, 03:53

Re: PHP Select

Indlæg af Jepsen » 8. jan 2015, 15:29

Google har skrevet en ganske fornuftig guide til multilingual sites:
https://support.google.com/webmasters/a ... 92?hl=en#1

Her er også flg.:
http://googlewebmastercentral.blogspot. ... sites.html

Så vidt jeg husker for min korte tid med SEO, er et 301-redirect det bedste.

Dit problem bliver jo så bare, at hvis din URL permanent er rykket, så vil du ikke kunne finde resultater fra .dk, hvis google botten bliver sendt til .com domænet.
Det er i hvertfald sådan jeg har forstået det.

Hvis jeg var dig, så ville jeg tage en tur forbi google.com, og søge på følgende:
php htaccess websites multilingual seo

Her kommer en god portion blog-posts samt spørgsmål hos stackoverflow. Mon ikke det kan hjælpe dig lidt på vej?

Crow
Rutineret
Rutineret
Indlæg:64
Tilmeldt:15. apr 2014, 11:24

Re: PHP Select

Indlæg af Crow » 8. jan 2015, 15:59

har været forbi og fundet mange spørgsmål og få svar som kan misforstå's.

jeg vil lige læse dine 2 links og se om jeg kan få en bedre forståelse for det :)

Besvar