Improve label resolution in french for geonames.
--- a/cms/package-lock.json Fri Sep 15 14:54:19 2017 +0200
+++ b/cms/package-lock.json Tue Sep 26 21:41:49 2017 +0200
@@ -1,6 +1,6 @@
{
"name": "corpus-cms",
- "version": "0.0.22",
+ "version": "0.0.23",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
--- a/server/src/app/Services/GeonamesResolver.php Fri Sep 15 14:54:19 2017 +0200
+++ b/server/src/app/Services/GeonamesResolver.php Tue Sep 26 21:41:49 2017 +0200
@@ -60,13 +60,31 @@
elseif (strpos($lang, 'fr') === 0 && !isset($labels['fr'])) {
$labels['fr'] = $labelLit->getvalue();
}
+ elseif (strpos($lang, 'en') === 0 && !isset($labels['en'])) {
+ $labels['en'] = $labelLit->getvalue();
+ }
}
- $label = isset($labels['fr']) ? $labels['fr'] : ( isset($labels[''])? $labels['']: null) ;
+ $label = isset($labels['fr']) ? $labels['fr'] : null ;
if(is_null($label)) {
- $labelLit = $graph->getLiteral("<$url>", "<http://www.geonames.org/ontology#name>");
- $label = (!is_null($labelLit)) ? $labelLit->getValue() : null;
+ foreach ($graph->allLiterals("<$url>", "<http://www.geonames.org/ontology#name>") as $labelLit) {
+ $lang = $labelLit->getLang();
+ if(!$lang && !isset($labels[''])) {
+ $labels[''] = $labelLit->getvalue();
+ }
+ elseif (strpos($lang, 'fr') === 0 && !isset($labels['fr'])) {
+ $labels['fr'] = $labelLit->getvalue();
+ }
+ elseif (strpos($lang, 'en') === 0 && !isset($labels['en'])) {
+ $labels['en'] = $labelLit->getvalue();
+ }
+ }
+ $label = isset($labels['fr']) ? $labels['fr'] : (
+ isset($labels['en']) ? $labels['en'] : (
+ isset($labels['']) ? $labels[''] : null
+ )
+ ) ;
}
return $label;