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

peri22 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

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

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

0
0

Üdv!
Dudás József

peri22 képe

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.

0
0
dj képe

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

0
0

Üdv!
Dudás József

peri22 képe

á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

0
0
dj képe

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?

0
0

Üdv!
Dudás József

peri22 képe

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

0
0
dj képe

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.

0
0

Üdv!
Dudás József

peri22 képe

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

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

0
0
dj képe

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;
  }
}
 
?>
0
0

Üdv!
Dudás József

peri22 képe

perfect. köszi :)

0
0
peri22 képe

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?

0
0
peri22 képe

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.

0
0
Balogh Zoltán képe

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ó.

0
0
peri22 képe

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

0
0