language switcher, ha létezik fordítás

kovibéla képe

Hali!

Többnyelvűsített site-ot szeretnék létrehozni, de nem minden oldalnak lesz angol, német fordítása.
Azt szeretném elérni, hogy a Language switcher blokk csak akkor tegye ki a nyelvi zászlóját, ha az adott oldal le van fordítva arra a nyelvre. Ez megvalósítható? (nem találtam rá megoldást)

Köszi: béla

dj képe
Hogy próbáltad ahogy nem

Hogy próbáltad ahogy nem sikerült?

Üdv!
Dudás József

kovibéla képe
az a problémám, hogy az angol

az a problémám, hogy az angol és német zászló akkor is megjelenik, ha az adott node nincs is lefordítva azokra a nyelvekre. Ebben az esetben, ha nyelvet váltok, akkor ugyan úgy az eredeti node jelenik meg.

beállítások:
Címlap › Adminisztráció › Webhely beállítása › Nyelvek

többnyelvű rendszer tab:
Tartalom kiválasztás módja: Csak a jelenlegi nyelv.
Tartalom fordítás hivatkozásainak elrejtése: pipa
Felületváltás fordításhoz: pipa

beállítás tab:
Nyelv megállapítás: Útvonal előtagok nyelvi alapértelmezéssel.

dj képe
Akkor még állítsd be a

Adminisztráció › Webhely beállítása › Nyelvek › Multilingual system : Mixed current language (if available) or default language (if not) and language neutral. opciót.

Én még ezt is be szoktam kapcsolni ugyanitt: Hide content translation links

Üdv!
Dudás József

kovibéla képe
átállítottam az általad

átállítottam az általad javasoltra, de a jelenség ugyan az.

ha már létezik a forráson kívül min. 1 fordítás, akkor jól működik, de ha csak a forrás van, akkor megjelenik mind a 3 nyelv és ugyan azt a tartalmat váltogatja.
de/node/38
hu/node/38
en/node/38

dj képe
Manuálisan bele tudsz nyúlni a tartalomba

próbaképp? Állítsd a tnid mezőt a le nem fordított tartalomnál 0-ról a nid értékre. Akkor hogy csinál?

Üdv!
Dudás József

kovibéla képe
így működik. csak a magyar

így működik.
csak a magyar jelenik meg a nyelvválasztó blokkban.

dj képe
Érdemes lenne

megtudni valakitől a koncepciót, hogy amíg nincs lefordítva valamilyen nyelvre akkor a forrás tartalom miért 0-ás tnid-t produkál. Én írtam erre egy kis modult ami létrehozás után a tnid-t beállítja a nid-re. Egy csomó helyen problémás ez a 0-ás tnid pl. a view is rossz eredményt ad vissza emiatt nyelvi szinten amíg nincs fordítás.

Üdv!
Dudás József

kovibéla képe
Tényleg. a views-ben már

Tényleg. a views-ben már nekem is feltűnt ez a jelenség.

fel tudnád tenni, a modulodat?
köszi

dj képe
Lőn:

setTnid.info

; $Id: setTnid.info,v 1.0 2009/07/22 20:11:10 nerkn Exp $
name = setTnid
description = "set tnid of source node"
core = 6.x

setTnid.module

<?php
// $Id: setTnid.module,v 1.0 2009/07/22 204:17:41 nerkn Exp $

function settnid_menu(){

 
$items = array();

 
$items['admin/settings/settnid'] = array(
   
'title' => t('setTnid settings'),
   
'description' => t('setTnid check on if you want to set tnid of source node on first time saving'),
   
'page callback' => 'drupal_get_form',
   
'page arguments' => array('settnid_admin'),
   
'access arguments' => array('access administration pages'),
   
'type' => MENU_NORMAL_ITEM,
   );

  return
$items;
}

function
settnid_admin() {

 
$form['settnid_check'] = array(
   
'#type'         => 'checkbox',
   
'#title'         => t('setTnid on'),
   
'#default_value'     => variable_get('settnid_check', 0),
   
'#description'       => t("Set checked if you want to use this function"),
   
'#required'          => TRUE,
  );
  return
system_settings_form($form);
}


function
_update_node($node){
    if (
variable_get('settnid_check', 0) ) {
   
db_query('UPDATE {node} SET tnid = %d WHERE nid = %d', $node->nid, $node->nid);
    }
}



function
settnid_nodeapi(&$node, $op, $teaser, $page) {
  switch (
$op) {
   
// node validated and saved.
   
case 'insert':
    if (
$node->translation_source) {
        return;
// saved a translation version.
   
}
    if (
$node->tnid) {
        return;
// saved a translation version.
   
}
   
_update_node($node);
      break;
  }
}

?>

Üdv!
Dudás József

kovibéla képe
perfect. köszi :)

perfect. köszi :)

kovibéla képe
tehát, akkor 2 megoldás

tehát, akkor 2 megoldás létezik a problémámra?
vagy belenyúlok a nyelvválasztó blokk részbe, vagy írok egy modult ami azt csinálja, hogy átírja a 0 tnid-eket a nid-re?

kovibéla képe
Ez érdekes: ha létrehozom

Ez érdekes:
ha létrehozom magyarul a node-ot, akkor megjelenik mind a 3 nyelv és ugyan az a cikk jön be mindnél, de ha létrehozok 1 fordítást hozzá, akkor már helyesen működik a dolog. Akkor csak az a 2 nyelv jelenik meg a language switcher blokkban.

Balogh Zoltán képe
Kezelőfelület

A Language switcher blokk szerintem a kezelőfelület nyelvezetére vonatkozik, és független attól, hogy az adott tartalom épp milyen nyelvekre van, vagy éppen nincs lefordítva. Nem erre való.

kovibéla képe
nem így van, mert mint írtam,

nem így van, mert mint írtam, ha már 1 fordítása létezik a forrásnak, akkor megfelelően működik.