Overview
Comment: | utils: Properly translate plurals |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
9ee403e4fcfc853fc0ceaea02dce6cb6 |
User & Date: | js on 2020-04-12 22:28:01 |
Other Links: | manifest | tags |
Context
2020-04-13
| ||
15:48 | OFLocale: Allow plural scripting in fallback (check-in: 8a0c5ed345 user: js tags: trunk) | |
2020-04-12
| ||
22:28 | utils: Properly translate plurals (check-in: 9ee403e4fc user: js tags: trunk) | |
22:09 | OFLocale: Switch to infix notation (check-in: fe77fef5ec user: js tags: trunk) | |
Changes
Modified src/OFLocale.m from [12259d9f0f] to [040819af75].
︙ | ︙ | |||
111 112 113 114 115 116 117 118 119 120 121 122 123 124 | /* Substitute variables and convert to RPN first */ tokens = [OFMutableArray array]; operators = [OFMutableArray array]; for (OFString *token in [condition componentsSeparatedByString: @" " options: OF_STRING_SKIP_EMPTY]) { unsigned precedence; if ([token isEqual: @"("]) { [operators addObject: @"("]; continue; } if ([token isEqual: @")"]) { | > | 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 | /* Substitute variables and convert to RPN first */ tokens = [OFMutableArray array]; operators = [OFMutableArray array]; for (OFString *token in [condition componentsSeparatedByString: @" " options: OF_STRING_SKIP_EMPTY]) { unsigned precedence; of_unichar_t c; if ([token isEqual: @"("]) { [operators addObject: @"("]; continue; } if ([token isEqual: @")"]) { |
︙ | ︙ | |||
158 159 160 161 162 163 164 | [operators removeLastObject]; } [operators addObject: token]; continue; } | | < | 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 | [operators removeLastObject]; } [operators addObject: token]; continue; } c = [token characterAtIndex: 0]; if ((c < '0' || c > '9') && c != '-') if ((token = [variables objectForKey: token]) == nil) @throw [OFInvalidFormatException exception]; [tokens addObject: [OFNumber numberWithDouble: token.doubleValue]]; } |
︙ | ︙ |
Modified utils/ofarc/lang/de.json from [277b513dff] to [d777ea4bdf].
︙ | ︙ | |||
64 65 66 67 68 69 70 | "cannot_list_gz": "Kann Dateien eines .gz-Archivs nicht auflisten!", "cannot_extract_specific_file_from_gz": [ "Kann keine spezifische Datei aus einem .gz-Archiv entpacken!" ], "cannot_print_specific_file_from_gz": [ "Kann keine spezifische Datei aus einem .gz-Archiv ausgeben!" ], | | > > > > > > | > > > > > > | > > > > > > | 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 | "cannot_list_gz": "Kann Dateien eines .gz-Archivs nicht auflisten!", "cannot_extract_specific_file_from_gz": [ "Kann keine spezifische Datei aus einem .gz-Archiv entpacken!" ], "cannot_print_specific_file_from_gz": [ "Kann keine spezifische Datei aus einem .gz-Archiv ausgeben!" ], "list_size": [ "Größe: ", [ {"size == 1": "1 Byte"}, {"": "%[size] Bytes"} ] ], "list_mode": "Modus: %[mode]", "list_owner": "Besitzer: %[owner]", "list_group": "Gruppe: %[group]", "list_header_level": "Header-Level: %[level]", "list_modification_date": "Änderungsdatum: %[date]", "list_type_normal": "Typ: Normale Datei", "list_type_hardlink": "Typ: Harter Link", "list_type_symlink": "Typ: Symbolischer Link", "list_link_target": "Zieldateiname: %[target]", "list_type_character_device": "Typ: Zeichenorientiertes Gerät", "list_type_block_device": "Typ: Blockorientiertes Gerät", "list_device_major": "Major-Nummer des Geräts: %[major]", "list_device_minor": "Minor-Nummer des Geräts: %[minor]", "list_type_directory": "Typ: Verzeichnis", "list_type_fifo": "Typ: FIFO", "list_type_contiguous_file": "Typ: Zusammenhängende Datei", "list_type_unknown": "Typ: Unbekannt", "list_compressed_size": [ "Komprimierte Größe: ", [ {"size == 1": "1 Byte"}, {"": "%[size] Bytes"} ] ], "list_uncompressed_size": [ "Unkomprimierte Größe: ", [ {"size == 1": "1 Byte"}, {"": "%[size] Bytes"} ] ], "list_compression_method": "Kompressionsmethode: %[method]", "list_date": "Datum: %[date]", "list_osid": "Betriebssystem-Identifikator: %[osid]", "list_extensions": "Erweiterungen: %[extensions]", "list_version_made_by": "Erstellt mit Version: %[version]", "list_min_version_needed": "Mindestens benötigte Version: %[version]", "list_general_purpose_bit_flag": "General Purpose Bit Flag: %[gpbf]", |
︙ | ︙ |
Modified utils/ofhttp/lang/de.json from [9f2302952b] to [dae75765a1].
︙ | ︙ | |||
75 76 77 78 79 80 81 | "download_done": "Fertig!", "invalid_url": "%[prog]: Ungültige URL: <%[url]>!", "invalid_scheme": "%[prog]: Ungültiges Schema: <%[url]>!", "type_unknown": "unbekannt", "size_gib": "%[num] GiB", "size_mib": "%[num] MiB", "size_kib": "%[num] KiB", | | > > > > > | > > > > > | 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 | "download_done": "Fertig!", "invalid_url": "%[prog]: Ungültige URL: <%[url]>!", "invalid_scheme": "%[prog]: Ungültiges Schema: <%[url]>!", "type_unknown": "unbekannt", "size_gib": "%[num] GiB", "size_mib": "%[num] MiB", "size_kib": "%[num] KiB", "size_bytes": [ [ {"num == 1": "1 Byte"}, {"": "%[num] Bytes"} ] ], "size_unknown": "unbekannt", "info_name_unaligned": "Name: %[name]", "info_name": "Name: %[name]", "info_type": "Typ: %[type]", "info_size": "Größe: %[size]", "output_already_exists": "%[prog]: Datei %[filename] existiert bereits!", "failed_to_open_output": [ "%[prog]: Kann Datei %[filename] nicht öffnen: %[exception]" ], "eta_days": "%[num] t ", "progress_bytes": [ [ {"num == 1": "1 Byte"}, {"": "%[num] Bytes"} ] ] } |