Többnyelvű oldalak url-jeinek kezelése

Kocsis Kata képe

A Fórumnak köszönhetően sikerült beüzemelnem egy többnyelvű oldalt, ahol a felület, a szótárak, a view-k, a tartalom, és a cck field-ek többnyelvűsítésével jól boldogultam.

Ami nem teljesen világos a számomra, hogyan kellene kezelnek az url-jeimet.

Ha például van egy kétnyelvű view-m, ami a termékeket listázza, a "termekek" oldalon, akkor alapban jól működik a dolog, de kicsit zavar, hogy angol-ra váltva is "termekek" marad az url-ben. Persze kipróbáltam, klónoztam a view-t és átírtam a page mezőt "products"-ra, és a megfelelő menüpontokat eszerint kötöttem be.

1. A kérdésem az, hogy érdemes-e ezt megtenni?

Beállítottam néhány automatizmust, angol oldalak en előtagot kapnak, és tartalomtípusonként nyelvfüggő url-előtagot is beállítottam. Például "receptek" vagy "recipes" kerül a receptek tartalomtípusú oldalak címe elé az url-ben.

2. Nagyon zavar, hogy ha egy magyar oldalnál eltérek az automatikus url generálástól és elmentek egy konkrét url-t, akkor amikor a fordításánál is megteszem az angol nyelvű node-nál ugyanezt, a magyar párjánál törli az előző beállításomat és visszaírja, hogy automatikusan képezze az url-t. Tehát mindig csak az utolsónak mentett node-nál őrzi meg az url átírásom, a fordított párjait felülírja.

Ennek így kell működni, vagy ez valami hiba? Érdemes egyébként eltérni az automatikus path képzéstől?

Tudom, hogy ez fizikailag több kérdés, de mégis egyetlen problémakör: többnyelvű oldalak esetén hogyan érdemes az url-eket felépítenem.

Melyik modulhoz, modulokhoz kapcsolódik a téma?: 
Drupal verzió: 
vikicica22 képe

Szerintem a pathauto modulra lesz szükséged.
http://drupal.org/project/pathauto

Útvonalálnevek -> Álnév hozzáadása

itt be lehet állítani amit szeretnél.

0
0
Sk8erPeter képe

A Views-zal létrehozott oldalra:
uhh, nehogy minden URL alias részére létrehozz egy-egy külön page view-t, mert az nagyon durva meló lesz hosszú távon...
Egyszerűen adj hozzá a "termekek" aliashoz egy "products" aliast az admin/config/search/path/add oldalon (Administration » Configuration » Search and metadata » URL aliases).

A másikra pedig én is a Pathauto modult ajánlom, plusz érdemes még mindenképp felrakni a Transliteration modult is. A Pathauto felrakása után konkrétan az admin/config/search/path/patterns ( Administration » Configuration » Search and metadata » URL aliases » Patterns) oldalon tudsz beállítani egységes mintákat az egyes node-okhoz, tartalomtípusoktól és nyelvektől függően (persze itt van még a taxonómia és a felhasználók szerinti URL-alias generálása is). Meg lehet adni egy alapértelmezett mintát, egy mintát a semleges nyelvnek, egyet a magyarnak, egyet az angolnak.
Csak egy példa:
a "Basic page" tartalomtípusnál, amennyiben engedélyezve van a többnyelvűség, akkor külön megadhatod, hogy minden angol nyelvű tartalomra ilyen URL alias generálódjon:
pages/[node:title]
a magyar oldalakhoz pedig ilyen:
oldalak/[node:title]

Az előbbi azt jelenti, hogy amennyiben készítesz egy "Ez az első oldal" című cikket, akkor valami ilyesmi lesz a legenerált URL alias, ha telepítve van a Transliteration is (persze beállítástól függően változhat):
oldalak/ez-az-elso-oldal
aztán mindezt lefordítod angolra, "This is my first page" címen, akkor ilyen lesz ennek a tartalomnak az angol URL aliasa:
pages/this-is-my-first-page

de akár ebbe még a node id-t is beleteheted:
oldalak/[node:nid]/[node:title]
ekkor ilyesmi alias lesz:
oldalak/1/ez-az-elso-oldal

0
0
Kocsis Kata képe

Valószínűleg rosszul fogalmaztam valamit, mert pont a pathauto modult használom úgy, ahogy Permalink is leírta, és azzal nem értek valamit.

Tehát minden ragyogóan működik, amíg automatikus url generálást állítok be a tartalmakra. Ha azonban az url alias settings-nél beállítok valamit, mert nem jó az automatikus, akkor ez csak a legutolsónak módosított fordításnál érvényesül. A többit visszaállítja automatic alias-ra.

0
0
Sk8erPeter képe

"pont a pathauto modult használom úgy, ahogy Permalink is leírta"
Ki az a Permalink? :P

Akkor lehetséges megoldás:

Magától nem fognak újragenerálódni az URL aliasok, neked kell újrageneráltatnod őket.
Két lehetőség:

  1. admin/content oldalon a megfelelő típusra szűrés, mind kijelölése, majd update options-nél "Update URL alias".
  2. Vagy a Bulk update oldalon: admin/config/search/path/update_bulk
  3. +1: VBO modullal is elintézheted a dolgot.
0
0