Naamvallen in Drupal

Via Drupals t() functie kan je in modules heel gemakkelijk strings (tekenreeksen) gebruiken die door anderen vertaald kunnen worden. Met placeholders (zie bovenstaande link voor uitleg) kan je gemakkelijk vaste waardes, zoals getallen, invoegen in een te vertalen string. Naast getallen kan je ook strings via placeholders invoegen, zoals in de Drupal Core gebeurt met gebruikersnamen. De volgende code geeft een situatie weer die voor problemen zorgt:

<?
t("Hello @name!", array('@name' => $account->name));
?>

In het Engels en het Nederlands zou dit respectievelijk "Hello Marcus!" en "Hallo Marcus!" worden, maar wat als je nou een taal hebt die met naamvallen werkt? In zo'n taal zou @name een vocatief zijn. Bovenstaande zin zou naar het Latijn vertaald worden met "Ave Marci!". Hey! Daar heb je het probleem! Marcus wordt ineens Marci. Nou is Latijn een taal die toch niemand meer spreekt, maar er zijn genoeg levende talen die wél naamvallen gebruiken.

Hoe ga je hiermee om? Wat is een zowel gemakkelijke als effectieve manier om dit probleem op te lossen? Ís het überhaubt op te lossen...?

Comments

Post new comment

The content of this field is kept private and will not be shown publicly.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <abbr> <blockquote> <del> <img> <h2> <h3> <h4> <h5> <h6>
  • Lines and paragraphs break automatically.
  • You may post code using <code>...</code> (generic) or <?php ... ?> (highlighted PHP) tags.

More information about formatting options

CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions. As a registered user you won't have to respond to these questions anymore.
2 + 10 =
Solve this simple math problem and enter the result. E.g. for 1+3, enter 4.