localizePath method

String localizePath(
  1. String path,
  2. String languageCode
)

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;
}