Permalinkuri multilingvistică în qtranslate

15 nov. 2011, 13:50:20
Vizualizări: 18K
Voturi: 4

Folosesc pluginul qtranslate pentru site-ul meu WordPress pentru a-l face multilingvistic.

Acum am o cerință precum:

Pentru engleză, URL-ul ar trebui să arate astfel: www.sitename.com/contact-en Pentru franceză, URL-ul ar trebui să arate astfel: www.sitename.com/fr/contact-fr

Cum pot realiza acest lucru? (qTranslate este pluginul folosit)

Notă: Nu ar trebui să apară niciun ID de postare între ele

Conform postării de pe https://wordpress.stackexchange.com/questions/24061/multilingual-permalinks-qtranslate am încercat http://www.3dolab.net/en/qtranslateslug-plugin-widget dar apar erori de "pagină negăsită". Se pare că autorul a încetat să mai îmbunătățească acel plugin conform celui de-al 29-lea comentariu de pe acea pagină.

1
Comentarii

Confrunt exact aceeași problemă, așa că sunt foarte interesat de această soluție. Din păcate, sunt departe de a fi un expert în PHP și, prin urmare, nu am reușit să o fac să funcționeze pentru mine. Ați putea, vă rog, să oferiți câteva detalii suplimentare despre fragmentul dumneavoastră de cod? Mulțumesc anticipat.

User User
24 nov. 2011 02:20:04
Toate răspunsurile la întrebare 3
1

În setările qTranslate din panoul de administrare, deschideți opțiunile avansate și bifați butonul radio pentru utilizarea prefixelor de limbă după numele domeniului. Presupun că aveți franceza listată în setările de Limbi ale pluginului, corect? Este posibil să vedeți date afișate incorect după aceea, folosiți funcția php date pentru a remedia acest lucru în setările specifice limbii (editați limba). De exemplu, j F. Vizualizați exemplul la minexrussia.com/2011 unde prefixul ru este plasat în același mod.

Pentru a evita prefixul en, selectați engleza ca limbă implicită și bifați setarea din Opțiuni avansate pentru a nu afișa prefixul pentru limba implicită. Vă sugerez să eliminați toate celelalte limbi, cu excepția en și fr, din setările pluginului.

15 nov. 2011 16:03:00
Comentarii

Da, am franceza în lista mea de limbi. Data nu ar trebui să apară în URL. Cerința mea de bază este să pot specifica slug-uri diferite pentru diferite limbi. De exemplu: /contact-en pentru engleză, /contact-fr pentru franceză, așa cum am descris în întrebarea mea.

Beniston Beniston
16 nov. 2011 05:49:52
0

Având pluginul "qtranslateslug-plugin-widget" funcționând în partea de administrare pentru a stoca slug-uri în tabela de slug-uri, am adăugat propriul meu cod în partea utilizatorului.

În pagina wp-blog-header.php am adăugat propriul cod chiar înainte de includerea fișierului wp-load.php. Am preluat URL-ul din $_SERVER['REQUEST_URI'] și, folosind slug-ul și limba din acesta, am obținut numele postării și am atribuit URI-ul modificat $_SERVER['REQUEST_URI'] în mod corespunzător.

De exemplu:

Înainte de editare: $_SERVER['REQUEST_URI'] = '/fr/french-slug';

După editare: $_SERVER['REQUEST_URI'] = '/post-name';

Să explic acest lucru într-un mod mai detaliat:

  1. Atribuiți $_SERVER['REQUEST_URI'] unei variabile

  2. Obțineți slug-ul explodându-l cu bara oblică (/)

  3. Verificați slug-ul în tabela de slug-uri pe care o folosește pluginul "qtranslateslug-plugin-widget" și obțineți ID-ul postării de acolo

  4. Acum, folosind ID-ul postării, obțineți numele postării din tabela de postări.

  5. Combinați-l în așa fel cum am arătat în exemplul de mai sus.

  6. Atribuiți-l înapoi la $_SERVER['REQUEST_URI']

22 nov. 2011 11:09:43
0

Te rog să arunci o privire la http://wordpress.org/plugins/qtranslate-slug/

Qtranslate este un plugin util, dar din păcate astăzi este depășit. Qtranslate Slug este un supliment pentru QTranslate, care adaugă suport pentru traducerea legăturilor permanente și remediază unele deficiențe ale QTranslate începând cu WordPress 3.0.

19 iun. 2014 19:13:06