localizePath method
Localizes a canonical English path to the given language code.
/book/abc123 → /libro/abc123 (for 'es')
/book/abc123 → /book/abc123 (for 'en', no-op)
Implementation
String localizePath(String path, String languageCode) {
if (path.isEmpty || path == '/') return path;
if (languageCode == 'en') return path;
final localMap = _forwardMaps[languageCode];
if (localMap == null) return path;
final qIndex = path.indexOf('?');
final purePath = qIndex > -1 ? path.substring(0, qIndex) : path;
final query = qIndex > -1 ? path.substring(qIndex) : '';
final segments = purePath.split('/');
var changed = false;
for (var i = 0; i < segments.length; i++) {
final seg = segments[i];
if (seg.isEmpty) continue;
final localized = localMap[seg];
if (localized != null) {
segments[i] = localized;
changed = true;
}
}
if (!changed) return path;
return segments.join('/') + query;
}