module multilink (Multi-Language Link and Redirect)

multilink est pour Multi-Language Link and Redirect. Ici version 7.x-2.9 (2.10 en oct 214)
Particulièrement utile pour un site majoritairement francais, avec quelques pages en anglais.

Présentation des sous modules, et introduction

Il a 3 sous modules: un input filter, un redirecteur et un pour le cache (MultiLink Redirect Cached).

Le README n'a rien d'interressant. La doc anglaise se trouve à https://drupal.org/node/907514

Ci dessous, on parle de node/123 mais le processus est le meme avec un alias.

input filter

en créant un lien avec [100: more information] ce lien sera convertit en <a href="http://example.com/node/100">more information</a> ou vers 101 (si c'est la v fr du 100 et browser fr), vers 102 (si v es et browser es)... Et le titre du lien (au survol) affichera le titre du lien traduit (de destination).

avec [100: $] le survol du lien affiche le titre de la destination.

essayer {100|Title} ou ::100/Title::

redirection

Avec la conf par défaut de multilink, si un user italien logué (browser italien) demande une page et il n'y a pas de chemin:

Redirection d'un user italien logué
il demande langue du contenu redirection
it/node/123 it aucune
en/node/123 it vers it/node/123
en/node/123 it (avec trad it) vers it/node/124 (trad it du 123)
en/node/123 it (sans trad it pour 123) it/node/125 **
en/node/123 it (sans trad du tout pour 123) it/node/123

** 125 sera une trad dans une autre langue, l'ordre étant déterminé par l'ordre des langues

MultiLink Redirect Cached

Pour les anonymes, c'est selon l'état de la page dans le cache de drupal : si la page est dans le cache, ils ne sont pas redirigés.
Si MultiLink Redirect Cached est activés, ils seront redirigés comme les users logués.

Il génère des erreurs PHP "Notice : Undefined offset: 0 dans _multilink_redirect_cached_language_from_url() ligne 70 dans ...modules/multilink/multilink_redirect_cached/multilink_redirect_cached.module" => désactivé.

autres modules

Des tas d'autres modules sont cités. Je ne parle que de ceux que je connais:

Avec Global redirect : modifier weight dans la table systeme pour affiner.

Conf

droits: un seul "Bypass MultiLink Redirect" Disable redirect and display a message showing where the user would be redirected to."

Comment MultiLink génère les url?

Définitions de base - Multilink

définitions

commentaires
yes NEW dans la 2.5 New depuis 2.5
ou selected
quand on use le bloc drapeau général (par ex clic "en"), il considère alors l'anglais comme langue favorite du user
User's preferred-language
ou preferred
 
vient de la préférence du compte user (drupal) ou sinon des pref du browser
url-language si fr/node/123 alors c'est fr (quelque soit la langue du contenu)
default-language du site  
node-language si fr/node/123 alors que 123 est en anglais, alors sera en
result-language choisi par Multilink (dépend de la présence ou non de trads et de la sélection de l'ordre des langues)

Comportement

Choix selon le préfixe (pour voir l'interface dans sa langue préférée).
Il choisit "au mieux" (result-language) selon la présence (ou non) de traductions (voir ** s'il n'existe pas de trad pour sa langue mais une pour d'autres langues).
Puis il redirige (si le sous module de "redirection" a été activé) de url-language/content-in-node-language vers preferred-language/content-in-result-language
Il ne redirige pas que les nodes: url-language/user ira vers preferred-language/user.
 

** ordre des langues par défaut: selected, preferred, browser, current, content, url et défaut

Le choix réalisé par drupal pour current et content est lié à l'ordre de admin/config/regional/language/configure

Peut-être modifié dans le settings.php:
  $conf['multilink_language_order'] = array(
    'selected',
    'preferred',
    'current',
    'default'
  );

 

DL le module à https://drupal.org/project/multilink
La doc anglaise se trouve à https://drupal.org/node/907514
 

avec entity translation?

https://www.drupal.org/node/2018105