#2 Page d’accueil dans la langue par défaut

Closed
opened 3 years ago by nas · 2 comments
nas commented 3 years ago

Le comportement attendu de wikipp est de router vers la page d’accueil de la langue par défaut. La langue par défaut est définit par l’ordre dans lequel les locale sont déclarées dans le fichier de configuration :

locales : [ "fr_FR.UTF-8", "en_US.UTF-8" ]

Je n’ai pas ce comportement; bien que le problème soit contournable (via une redirection du serveur web) il faudra tout de même corriger ce bug

Le comportement attendu de wikipp est de router vers la page d’accueil de la langue par défaut. La langue par défaut est définit par l’ordre dans lequel les `locale` sont déclarées dans le fichier de configuration : ``` locales : [ "fr_FR.UTF-8", "en_US.UTF-8" ] ``` Je n’ai pas ce comportement; bien que le problème soit contournable (via une redirection du serveur web) il faudra tout de même corriger ce bug
nas commented 3 years ago
Owner

Les langages sont obtenu dans src/master.cpp :

cppcms::json::object langs=settings().get("wikipp.languages",cppcms::json::object());
for(cppcms::json::object::const_iterator p=langs.begin(),e=langs.end();p!=e;++p) {
    […]
}

et traité :

std::map<std::string,std::string>::const_iterator p = lang_map.find(std::string(res[1]));
    if(p==lang_map.end()) {
        page.redirect();
    }
    else {
        locale_name = p->first;
        context().locale(p->second);
        if(!dispatcher().dispatch(res[2]))
        page.redirect(locale_name);
    }
}

Cependant l’ordre n’est pas conservé dans les map

Source : https://stackoverflow.com/questions/4826404/getting-first-value-from-map-in-c

Les langages sont obtenu dans `src/master.cpp` : ``` cppcms::json::object langs=settings().get("wikipp.languages",cppcms::json::object()); for(cppcms::json::object::const_iterator p=langs.begin(),e=langs.end();p!=e;++p) { […] } ``` et traité : ``` std::map<std::string,std::string>::const_iterator p = lang_map.find(std::string(res[1])); if(p==lang_map.end()) { page.redirect(); } else { locale_name = p->first; context().locale(p->second); if(!dispatcher().dispatch(res[2])) page.redirect(locale_name); } } ``` Cependant l’ordre n’est pas conservé dans les `map` Source : https://stackoverflow.com/questions/4826404/getting-first-value-from-map-in-c
nas commented 3 years ago
Owner

Résolu par cbe37d1e00 qui ajoute un champs de configuration pour la langue par défaut

Résolu par cbe37d1e00a0bfe766f3200102577007468d24af qui ajoute un champs de configuration pour la langue par défaut
Sign in to join this conversation.
No Milestone
No Assignees
1 Participants
Due Date

No due date set.

Dependencies

This issue currently doesn't have any dependencies.

Loading…
Cancel
Save
There is no content yet.