Implement time ago parser and improve localization handling

- Handle special cases for languages where the number is not shown
- Rework the Downloader base implementation, allowing for more
advanced things to be done
- Separate the localization from the content country (just like
YouTube let's the user choose both).
This commit is contained in:
Mauricio Colli 2019-04-28 17:03:16 -03:00
parent 180836c180
commit 3638f0e0ea
No known key found for this signature in database
GPG key ID: F200BFD6F29DDD85
274 changed files with 4770 additions and 3468 deletions

View file

@ -1,3 +1,6 @@
dependencies {
testImplementation 'junit:junit:4.12'
implementation 'com.grack:nanojson:1.1'
implementation 'com.github.spotbugs:spotbugs-annotations:3.1.0'
}

View file

@ -0,0 +1,116 @@
import com.grack.nanojson.JsonArray;
import com.grack.nanojson.JsonObject;
import com.grack.nanojson.JsonParser;
import com.grack.nanojson.JsonParserException;
import org.schabi.newpipe.extractor.timeago.PatternsHolder;
import org.schabi.newpipe.extractor.timeago.TimeAgoUnit;
import java.io.*;
import java.util.*;
public class GeneratePatternClasses {
public static void main(String[] args) throws FileNotFoundException, JsonParserException {
final InputStream resourceAsStream =
new FileInputStream("timeago-parser/raw/unique_patterns.json");
final JsonObject from = JsonParser.object().from(resourceAsStream);
final TreeMap<String, Object> map = new TreeMap<>(from);
for (Map.Entry<String, Object> entry : map.entrySet()) {
final String languageCode = entry.getKey().replace('-', '_');
final Map<String, Object> unitsList = (Map<String, Object>) entry.getValue();
final String wordSeparator = (String) unitsList.get("word_separator");
final JsonArray seconds = (JsonArray) unitsList.get("seconds");
final JsonArray minutes = (JsonArray) unitsList.get("minutes");
final JsonArray hours = (JsonArray) unitsList.get("hours");
final JsonArray days = (JsonArray) unitsList.get("days");
final JsonArray weeks = (JsonArray) unitsList.get("weeks");
final JsonArray months = (JsonArray) unitsList.get("months");
final JsonArray years = (JsonArray) unitsList.get("years");
final StringBuilder specialCasesString = new StringBuilder();
specialCasesConstruct(TimeAgoUnit.SECONDS, seconds, specialCasesString);
specialCasesConstruct(TimeAgoUnit.MINUTES, minutes, specialCasesString);
specialCasesConstruct(TimeAgoUnit.HOURS, hours, specialCasesString);
specialCasesConstruct(TimeAgoUnit.DAYS, days, specialCasesString);
specialCasesConstruct(TimeAgoUnit.WEEKS, weeks, specialCasesString);
specialCasesConstruct(TimeAgoUnit.MONTHS, months, specialCasesString);
specialCasesConstruct(TimeAgoUnit.YEARS, years, specialCasesString);
System.out.println("Generating \"" + languageCode + "\" pattern class...");
try (final FileWriter fileOut = new FileWriter(
"timeago-parser/src/main/java/org/schabi/newpipe/extractor/timeago/patterns/" +
languageCode + ".java")) {
final String test = INFO_CLASS_GENERATED + "\n" +
"\n" +
"package org.schabi.newpipe.extractor.timeago.patterns;\n\n" +
"import org.schabi.newpipe.extractor.timeago.PatternsHolder;\n" +
(specialCasesString.length() > 0 ? "import org.schabi.newpipe.extractor.timeago.TimeAgoUnit;\n" : "") +
"\n" +
"public class " + languageCode + " extends PatternsHolder {\n" +
" private static final String WORD_SEPARATOR = \"" + wordSeparator + "\";\n" +
" private static final String[]\n" +
" SECONDS /**/ = {" + join(seconds) + "},\n" +
" MINUTES /**/ = {" + join(minutes) + "},\n" +
" HOURS /**/ = {" + join(hours) + "},\n" +
" DAYS /**/ = {" + join(days) + "},\n" +
" WEEKS /**/ = {" + join(weeks) + "},\n" +
" MONTHS /**/ = {" + join(months) + "},\n" +
" YEARS /**/ = {" + join(years) + "};\n" +
"\n" +
" private static final " + languageCode + " INSTANCE = new " + languageCode + "();\n" +
"\n" +
" public static " + languageCode + " getInstance() {\n" +
" return INSTANCE;\n" +
" }\n" +
"\n" +
" private " + languageCode + "() {\n" +
" super(WORD_SEPARATOR, SECONDS, MINUTES, HOURS, DAYS, WEEKS, MONTHS, YEARS);\n" +
specialCasesString.toString() +
" }\n" +
"}";
fileOut.write(test);
} catch (IOException e) {
e.printStackTrace();
}
}
}
private static void specialCasesConstruct(TimeAgoUnit unit, JsonArray array, StringBuilder stringBuilder) {
final Iterator<Object> iterator = array.iterator();
while (iterator.hasNext()) {
final Object o = iterator.next();
if (o instanceof JsonObject) {
final JsonObject caseObject = (JsonObject) o;
for (Map.Entry<String, Object> caseEntry : caseObject.entrySet()) {
final int caseAmount = Integer.parseInt(caseEntry.getKey());
final String caseText = (String) caseEntry.getValue();
iterator.remove();
stringBuilder.append(" ")
.append("putSpecialCase(TimeAgoUnit.").append(unit.name())
.append(", \"").append(caseText).append("\"")
.append(", ").append(caseAmount).append(");").append("\n");
}
}
}
}
private static final String INFO_CLASS_GENERATED = "/**/// DO NOT MODIFY THIS FILE MANUALLY\n" +
"/**/// This class was automatically generated by \"GeneratePatternClasses.java\",\n" +
"/**/// modify the \"unique_patterns.json\" and re-generate instead.";
private static String join(List<Object> list) {
final StringBuilder toReturn = new StringBuilder();
for (Object o : list) {
toReturn.append('"').append(o).append('"').append(", ");
}
toReturn.setLength(Math.max(toReturn.length() - 2, 0));
return toReturn.toString();
}
}

View file

@ -1,59 +0,0 @@
import com.grack.nanojson.JsonArray;
import com.grack.nanojson.JsonObject;
import com.grack.nanojson.JsonParser;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
import static org.schabi.newpipe.extractor.timeago.TimeAgoPatternsManager.RESOURCE_BUNDLE_ARRAY_SEPARATOR;
public class GenerateResourceBundles {
public static void main(String[] args) throws Exception {
File outDir = new File("timeago-parser/outBundle");
if (!outDir.isDirectory()) outDir.mkdir();
JsonObject object = JsonParser.object().from(new FileInputStream(new File("timeago-parser/raw/unique_patterns.json")));
for (Map.Entry<String, Object> langTimeEntry : new TreeMap<>(object).entrySet()) {
final String langName = langTimeEntry.getKey();
StringBuilder outString = new StringBuilder();
final TreeMap<String, Object> sortedMap = new TreeMap<>(Utils.compareByUnitName());
sortedMap.putAll((JsonObject) langTimeEntry.getValue());
final Iterator<Map.Entry<String, Object>> unitEntriesIterator = sortedMap.entrySet().iterator();
while (unitEntriesIterator.hasNext()) {
final Map.Entry<String, Object> unitEntry = unitEntriesIterator.next();
final String unitName = unitEntry.getKey();
final List<Object> unitList = (JsonArray) unitEntry.getValue();
outString.append(unitName).append("=\\\n");
for (int i = 0; i < unitList.size(); i++) {
final String s = unitList.get(i).toString();
outString.append(" ").append(s);
if (i < unitList.size() - 1) {
outString.append(RESOURCE_BUNDLE_ARRAY_SEPARATOR).append("\\").append("\n");
}
}
if (unitEntriesIterator.hasNext()) outString.append("\n\n");
}
String fileName = "time_units_" + langName.replaceAll("-", "_") + ".properties";
System.out.println("Writing " + fileName + "...");
try (OutputStream out = new FileOutputStream(new File(outDir, fileName))) {
out.write(outString.toString().getBytes("UTF-8"));
}
}
}
}

View file

@ -1,5 +1,6 @@
{
"af": {
"word_separator": " ",
"seconds": [
"sekonde",
"sekondes"
@ -29,6 +30,7 @@
]
},
"am": {
"word_separator": " ",
"seconds": [
"ሰኮንዶች",
"ሴኮንድ"
@ -59,6 +61,7 @@
]
},
"ar": {
"word_separator": " ",
"seconds": [
"ثانية",
"ثانيتين",
@ -97,6 +100,7 @@
]
},
"az": {
"word_separator": " ",
"seconds": [
"saniyə"
],
@ -120,37 +124,48 @@
]
},
"be": {
"word_separator": " ",
"seconds": [
"секунд",
"секунду",
"секунды"
],
"minutes": [
"хвілін",
"хвіліну",
"хвіліны"
],
"hours": [
"гадзін",
"гадзіну",
"гадзіны"
],
"days": [
"дзень",
"дня"
"дзён",
"дня",
"дні"
],
"weeks": [
"тыдзень",
"тыдня"
"тыдня",
"тыдні"
],
"months": [
"месяц",
"месяца"
"месяца",
"месяцы",
"месяцаў"
],
"years": [
"год",
"года"
"года",
"гады",
"гадоў"
]
},
"bg": {
"word_separator": " ",
"seconds": [
"секунда",
"секунди"
@ -181,6 +196,7 @@
]
},
"bn": {
"word_separator": " ",
"seconds": [
"সেকেন্ড"
],
@ -204,17 +220,22 @@
]
},
"bs": {
"word_separator": " ",
"seconds": [
"sekundi",
"sekunde",
"sekundu"
],
"minutes": [
"minuta",
"minute",
"minutu"
],
"hours": [
"h",
"sat"
"sat",
"sata",
"sati"
],
"days": [
"dan",
@ -225,15 +246,18 @@
],
"months": [
"mj.",
"mjesec"
"mjesec",
"mjeseca",
"mjeseci"
],
"years": [
"godine",
"godina",
"godine",
"godinu"
]
},
"ca": {
"word_separator": " ",
"seconds": [
"segon",
"segons"
@ -264,6 +288,7 @@
]
},
"cs": {
"word_separator": " ",
"seconds": [
"sekundami",
"sekundou"
@ -290,10 +315,12 @@
],
"years": [
"rokem",
"roky"
"roky",
"lety"
]
},
"da": {
"word_separator": " ",
"seconds": [
"sekund",
"sekunder"
@ -323,6 +350,7 @@
]
},
"de": {
"word_separator": " ",
"seconds": [
"Sekunde",
"Sekunden"
@ -353,6 +381,7 @@
]
},
"el": {
"word_separator": " ",
"seconds": [
"δευτερόλεπτα",
"δευτερόλεπτο"
@ -383,6 +412,7 @@
]
},
"en": {
"word_separator": " ",
"seconds": [
"second",
"seconds"
@ -413,6 +443,7 @@
]
},
"en-GB": {
"word_separator": " ",
"seconds": [
"second",
"seconds"
@ -443,6 +474,7 @@
]
},
"es": {
"word_separator": " ",
"seconds": [
"segundo",
"segundos"
@ -473,6 +505,7 @@
]
},
"es-419": {
"word_separator": " ",
"seconds": [
"segundo",
"segundos"
@ -503,6 +536,7 @@
]
},
"es-US": {
"word_separator": " ",
"seconds": [
"segundo",
"segundos"
@ -533,6 +567,7 @@
]
},
"et": {
"word_separator": " ",
"seconds": [
"sekund",
"sekundit"
@ -563,6 +598,7 @@
]
},
"eu": {
"word_separator": " ",
"seconds": [
"segundo"
],
@ -589,6 +625,7 @@
]
},
"fa": {
"word_separator": " ",
"seconds": [
"ثانیه"
],
@ -612,6 +649,7 @@
]
},
"fi": {
"word_separator": " ",
"seconds": [
"sekunti",
"sekuntia"
@ -642,6 +680,7 @@
]
},
"fil": {
"word_separator": " ",
"seconds": [
"segundo"
],
@ -665,6 +704,7 @@
]
},
"fr": {
"word_separator": " ",
"seconds": [
"seconde",
"secondes"
@ -694,6 +734,7 @@
]
},
"fr-CA": {
"word_separator": " ",
"seconds": [
"seconde",
"secondes"
@ -723,6 +764,7 @@
]
},
"gl": {
"word_separator": " ",
"seconds": [
"segundo",
"segundos"
@ -753,6 +795,7 @@
]
},
"gu": {
"word_separator": " ",
"seconds": [
"સેકંડ"
],
@ -776,6 +819,7 @@
]
},
"hi": {
"word_separator": " ",
"seconds": [
"सेकंड"
],
@ -790,7 +834,8 @@
"दिन"
],
"weeks": [
"सप्ताह"
"सप्ताह",
"हफ़्ते"
],
"months": [
"महीना",
@ -801,6 +846,7 @@
]
},
"hr": {
"word_separator": " ",
"seconds": [
"sekunde",
"sekundi",
@ -836,6 +882,7 @@
]
},
"hu": {
"word_separator": " ",
"seconds": [
"másodperce"
],
@ -859,6 +906,7 @@
]
},
"hy": {
"word_separator": " ",
"seconds": [
"վայրկյան"
],
@ -882,6 +930,7 @@
]
},
"id": {
"word_separator": " ",
"seconds": [
"detik"
],
@ -905,25 +954,41 @@
]
},
"is": {
"word_separator": " ",
"seconds": [
"sekúndu",
"sekúndum"
"sekúndum",
"second",
"seconds"
],
"minutes": [
"mínútu",
"mínútum"
"mínútum",
"minute",
"minutes"
],
"hours": [
"klukkustund",
"klukkustundum"
"klukkustundum",
"hour",
"hours"
],
"days": [
"degi",
"dögum"
"dögum",
"day",
"days"
],
"weeks": [
"viku",
"vikum"
"vikum",
"week",
"weeks"
],
"months": [
"mánuði",
@ -935,6 +1000,7 @@
]
},
"it": {
"word_separator": " ",
"seconds": [
"secondi",
"secondo"
@ -965,6 +1031,7 @@
]
},
"iw": {
"word_separator": " ",
"seconds": [
"שניות",
"שנייה"
@ -975,26 +1042,42 @@
],
"hours": [
"שעה",
"שעות"
"שעות",
{
"2": "שעתיים"
}
],
"days": [
"יום",
"ימים"
"ימים",
{
"2": "יומיים"
}
],
"weeks": [
"שבוע",
"שבועות"
"שבועות",
{
"2": "שבועיים"
}
],
"months": [
"חודש",
"חודשים"
"חודשים",
{
"2": "חודשיים"
}
],
"years": [
"שנה",
"שנים"
"שנים",
{
"2": "שנתיים"
}
]
},
"ja": {
"word_separator": "",
"seconds": [
"秒前"
],
@ -1018,6 +1101,7 @@
]
},
"ka": {
"word_separator": " ",
"seconds": [
"წამის"
],
@ -1041,6 +1125,7 @@
]
},
"kk": {
"word_separator": " ",
"seconds": [
"секунд"
],
@ -1064,6 +1149,7 @@
]
},
"km": {
"word_separator": "",
"seconds": [
"វិនាទី\u200bមុន",
"១វិនាទីមុន"
@ -1094,6 +1180,7 @@
]
},
"kn": {
"word_separator": " ",
"seconds": [
"ಸೆಕೆಂಡುಗಳ",
"ಸೆಕೆಂಡ್"
@ -1124,6 +1211,7 @@
]
},
"ko": {
"word_separator": "",
"seconds": [
"초"
],
@ -1147,6 +1235,7 @@
]
},
"ky": {
"word_separator": " ",
"seconds": [
"секунд"
],
@ -1170,6 +1259,7 @@
]
},
"lo": {
"word_separator": "",
"seconds": [
"ວິນາທີກ່ອນນີ້"
],
@ -1194,6 +1284,7 @@
]
},
"lt": {
"word_separator": " ",
"seconds": [
"sekundes",
"sekundę",
@ -1228,6 +1319,7 @@
]
},
"lv": {
"word_separator": " ",
"seconds": [
"sekundes",
"sekundēm"
@ -1259,6 +1351,7 @@
]
},
"mk": {
"word_separator": " ",
"seconds": [
"секунда",
"секунди"
@ -1289,6 +1382,7 @@
]
},
"ml": {
"word_separator": "",
"seconds": [
"സെക്കന്റ്",
"സെക്കൻഡ്"
@ -1314,6 +1408,7 @@
]
},
"mn": {
"word_separator": " ",
"seconds": [
"секундын"
],
@ -1338,6 +1433,7 @@
]
},
"mr": {
"word_separator": "",
"seconds": [
"सेकंदांपूर्वी",
"सेकंदापूर्वी"
@ -1368,6 +1464,7 @@
]
},
"ms": {
"word_separator": " ",
"seconds": [
"saat"
],
@ -1391,6 +1488,7 @@
]
},
"my": {
"word_separator": " ",
"seconds": [
"စက္ကန့်"
],
@ -1414,6 +1512,7 @@
]
},
"ne": {
"word_separator": " ",
"seconds": [
"सेकेन्ड"
],
@ -1437,6 +1536,7 @@
]
},
"nl": {
"word_separator": " ",
"seconds": [
"seconde",
"seconden"
@ -1465,6 +1565,7 @@
]
},
"no": {
"word_separator": " ",
"seconds": [
"sekund",
"sekunder"
@ -1493,6 +1594,7 @@
]
},
"pa": {
"word_separator": " ",
"seconds": [
"ਸਕਿੰਟ"
],
@ -1519,6 +1621,7 @@
]
},
"pl": {
"word_separator": " ",
"seconds": [
"sekund",
"sekundy",
@ -1554,6 +1657,7 @@
]
},
"pt": {
"word_separator": " ",
"seconds": [
"segundo",
"segundos"
@ -1584,6 +1688,7 @@
]
},
"pt-PT": {
"word_separator": " ",
"seconds": [
"segundo",
"segundos"
@ -1614,6 +1719,7 @@
]
},
"ro": {
"word_separator": " ",
"seconds": [
"secunde",
"secundă"
@ -1644,6 +1750,7 @@
]
},
"ru": {
"word_separator": " ",
"seconds": [
"секунд",
"секунду",
@ -1681,6 +1788,7 @@
]
},
"si": {
"word_separator": " ",
"seconds": [
"තත්පර"
],
@ -1704,6 +1812,7 @@
]
},
"sk": {
"word_separator": " ",
"seconds": [
"sekundami",
"sekundou"
@ -1734,6 +1843,7 @@
]
},
"sl": {
"word_separator": " ",
"seconds": [
"sekundama",
"sekundami",
@ -1771,6 +1881,7 @@
]
},
"sq": {
"word_separator": " ",
"seconds": [
"sekonda",
"sekondë"
@ -1797,6 +1908,7 @@
]
},
"sr": {
"word_separator": " ",
"seconds": [
"секунде",
"секунди"
@ -1810,8 +1922,12 @@
"сати"
],
"days": [
"дан",
"дана"
"Пре 1 дан",
"Пре 2 дана",
"Пре 3 дана",
"Пре 4 дана",
"Пре 5 дана",
"Пре 6 дана"
],
"weeks": [
"недеље",
@ -1829,6 +1945,7 @@
]
},
"sr-Latn": {
"word_separator": " ",
"seconds": [
"sekunde",
"sekundi"
@ -1838,11 +1955,16 @@
],
"hours": [
"sat",
"sati"
"sati",
"sata"
],
"days": [
"dan",
"dana"
"Pre 1 dan",
"Pre 2 dana",
"Pre 3 dana",
"Pre 4 dana",
"Pre 5 dana",
"Pre 6 dana"
],
"weeks": [
"nedelja",
@ -1861,6 +1983,7 @@
]
},
"sv": {
"word_separator": " ",
"seconds": [
"sekund",
"sekunder"
@ -1890,6 +2013,7 @@
]
},
"sw": {
"word_separator": " ",
"seconds": [
"sekunde"
],
@ -1915,6 +2039,7 @@
]
},
"ta": {
"word_separator": " ",
"seconds": [
"வினாடி",
"வினாடிகளுக்கு"
@ -1944,6 +2069,7 @@
]
},
"te": {
"word_separator": " ",
"seconds": [
"సెకను",
"సెకన్ల"
@ -1974,6 +2100,7 @@
]
},
"th": {
"word_separator": "",
"seconds": [
"วินาทีที่ผ่านมา"
],
@ -1997,6 +2124,7 @@
]
},
"tr": {
"word_separator": " ",
"seconds": [
"saniye"
],
@ -2020,6 +2148,7 @@
]
},
"uk": {
"word_separator": " ",
"seconds": [
"секунд",
"секунди",
@ -2056,6 +2185,7 @@
]
},
"ur": {
"word_separator": " ",
"seconds": [
"سیکنڈ",
"سیکنڈز"
@ -2083,6 +2213,7 @@
]
},
"uz": {
"word_separator": " ",
"seconds": [
"soniya"
],
@ -2106,6 +2237,7 @@
]
},
"vi": {
"word_separator": " ",
"seconds": [
"giây"
],
@ -2113,7 +2245,8 @@
"phút"
],
"hours": [
"giờ"
"giờ",
"tiếng"
],
"days": [
"ngày"
@ -2129,6 +2262,7 @@
]
},
"zh-CN": {
"word_separator": "",
"seconds": [
"秒前"
],
@ -2152,6 +2286,7 @@
]
},
"zh-HK": {
"word_separator": "",
"seconds": [
"秒前"
],
@ -2175,6 +2310,7 @@
]
},
"zh-TW": {
"word_separator": "",
"seconds": [
"秒前"
],
@ -2198,6 +2334,7 @@
]
},
"zu": {
"word_separator": " ",
"seconds": [
"amasekhondi",
"isekhondi"

View file

@ -0,0 +1,99 @@
package org.schabi.newpipe.extractor.timeago;
import java.util.Collection;
import java.util.LinkedHashMap;
import java.util.Map;
import static java.util.Arrays.asList;
public abstract class PatternsHolder {
private final String wordSeparator;
private final Collection<String> seconds;
private final Collection<String> minutes;
private final Collection<String> hours;
private final Collection<String> days;
private final Collection<String> weeks;
private final Collection<String> months;
private final Collection<String> years;
private final Map<TimeAgoUnit, Map<String, Integer>> specialCases = new LinkedHashMap<>();
protected PatternsHolder(String wordSeparator, Collection<String> seconds, Collection<String> minutes,
Collection<String> hours, Collection<String> days,
Collection<String> weeks, Collection<String> months, Collection<String> years) {
this.wordSeparator = wordSeparator;
this.seconds = seconds;
this.minutes = minutes;
this.hours = hours;
this.days = days;
this.weeks = weeks;
this.months = months;
this.years = years;
}
protected PatternsHolder(String wordSeparator, String[] seconds, String[] minutes, String[] hours, String[] days,
String[] weeks, String[] months, String[] years) {
this(wordSeparator, asList(seconds), asList(minutes), asList(hours), asList(days),
asList(weeks), asList(months), asList(years));
}
public String wordSeparator() {
return wordSeparator;
}
public Collection<String> seconds() {
return seconds;
}
public Collection<String> minutes() {
return minutes;
}
public Collection<String> hours() {
return hours;
}
public Collection<String> days() {
return days;
}
public Collection<String> weeks() {
return weeks;
}
public Collection<String> months() {
return months;
}
public Collection<String> years() {
return years;
}
public Map<TimeAgoUnit, Map<String, Integer>> specialCases() {
return specialCases;
}
protected void putSpecialCase(TimeAgoUnit unit, String caseText, int caseAmount) {
Map<String, Integer> item = specialCases.get(unit);
if (item == null) {
item = new LinkedHashMap<>();
specialCases.put(unit, item);
}
item.put(caseText, caseAmount);
}
public Map<TimeAgoUnit, Collection<String>> asMap() {
final Map<TimeAgoUnit, Collection<String>> returnMap = new LinkedHashMap<>();
returnMap.put(TimeAgoUnit.SECONDS, seconds());
returnMap.put(TimeAgoUnit.MINUTES, minutes());
returnMap.put(TimeAgoUnit.HOURS, hours());
returnMap.put(TimeAgoUnit.DAYS, days());
returnMap.put(TimeAgoUnit.WEEKS, weeks());
returnMap.put(TimeAgoUnit.MONTHS, months());
returnMap.put(TimeAgoUnit.YEARS, years());
return returnMap;
}
}

View file

@ -0,0 +1,31 @@
package org.schabi.newpipe.extractor.timeago;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import java.lang.reflect.InvocationTargetException;
public class PatternsManager {
/**
* Return an holder object containing all the patterns array.
*
* @return an object containing the patterns. If not existent, {@code null}.
*/
@Nullable
public static PatternsHolder getPatterns(@Nonnull String languageCode, @Nullable String countryCode) {
final String targetLocalizationClassName = languageCode +
(countryCode == null || countryCode.isEmpty() ? "" : "_" + countryCode);
try {
final Class<?> targetClass = Class.forName(
"org.schabi.newpipe.extractor.timeago.patterns." + targetLocalizationClassName);
return (PatternsHolder) targetClass.getDeclaredMethod("getInstance").invoke(null);
} catch (ClassNotFoundException ignored) {
// Target localization is not supported
} catch (IllegalAccessException | NoSuchMethodException | InvocationTargetException e) {
e.printStackTrace();
}
return null;
}
}

View file

@ -1,108 +0,0 @@
package org.schabi.newpipe.extractor.timeago;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import java.security.AccessController;
import java.security.PrivilegedActionException;
import java.security.PrivilegedExceptionAction;
import java.util.Locale;
import java.util.PropertyResourceBundle;
import java.util.ResourceBundle;
/**
* Handy class to get normal UTF-8 strings from the resource bundles.
*/
public class ResourceBundleUTF8 {
private static final UTF8Control utf8Control = new UTF8Control();
/**
* @see ResourceBundle#getBundle(String)
*/
public static ResourceBundle getBundle(String baseName) {
return ResourceBundle.getBundle(baseName, utf8Control);
}
/**
* @see ResourceBundle#getBundle(String, Locale)
*/
public static ResourceBundle getBundle(String baseName, Locale locale) {
return ResourceBundle.getBundle(baseName, locale, utf8Control);
}
/**
* Class copied from the java source modified to work with UTF-8 strings.
*/
public static class UTF8Control extends ResourceBundle.Control {
@Override
public ResourceBundle newBundle(String baseName, Locale locale, String format, ClassLoader loader, boolean reload) throws IllegalAccessException, InstantiationException, IOException {
// COPY FROM SOURCE
String bundleName = toBundleName(baseName, locale);
ResourceBundle bundle = null;
if (format.equals("java.class")) {
try {
@SuppressWarnings("unchecked")
Class<? extends ResourceBundle> bundleClass
= (Class<? extends ResourceBundle>) loader.loadClass(bundleName);
// If the class isn't a ResourceBundle subclass, throw a
// ClassCastException.
if (ResourceBundle.class.isAssignableFrom(bundleClass)) {
bundle = bundleClass.newInstance();
} else {
throw new ClassCastException(bundleClass.getName()
+ " cannot be cast to ResourceBundle");
}
} catch (ClassNotFoundException e) {
}
} else if (format.equals("java.properties")) {
final String resourceName = bundleName.contains("://") ? null : toResourceName(bundleName, "properties");
if (resourceName == null) {
return bundle;
}
final ClassLoader classLoader = loader;
final boolean reloadFlag = reload;
InputStream stream = null;
try {
stream = AccessController.doPrivileged(
new PrivilegedExceptionAction<InputStream>() {
public InputStream run() throws IOException {
InputStream is = null;
if (reloadFlag) {
URL url = classLoader.getResource(resourceName);
if (url != null) {
URLConnection connection = url.openConnection();
if (connection != null) {
// Disable caches to get fresh data for
// reloading.
connection.setUseCaches(false);
is = connection.getInputStream();
}
}
} else {
is = classLoader.getResourceAsStream(resourceName);
}
return is;
}
});
} catch (PrivilegedActionException e) {
throw (IOException) e.getException();
}
if (stream != null) {
try {
////// Line changed to support UTF-8
bundle = new PropertyResourceBundle(new InputStreamReader(stream, "UTF-8"));
} finally {
stream.close();
}
}
} else {
throw new IllegalArgumentException("unknown format: " + format);
}
return bundle;
}
}
}

View file

@ -1,24 +0,0 @@
package org.schabi.newpipe.extractor.timeago;
public class TimeAgoPatternsManager {
public static final String RESOURCE_BUNDLE_ARRAY_SEPARATOR = "»»";
// TODO: Uncomment this
/*
/**
* Get an array of patterns from the resources bundle according to the given {@link Locale}.
* <p>
* It already handles the string/array separator from the resources, as the normal resource
* bundle don't really support an array in the properties file.
* </p>
*
* @param timeUnit which time unit to get the patterns array
* @param locale locale used to get the localized patterns
* @return an array of phrases localized according to the given locale.
*//*
public static String[] getPatternsArray(TimeUnit timeUnit, Locale locale) {
return ResourceBundleUTF8.getBundle("i18n.time_units", locale).getString(timeUnit.name().toLowerCase())
.split(RESOURCE_BUNDLE_ARRAY_SEPARATOR);
}*/
// public static Map<TimeUnit, String[]> getAllPatternsFor(Locale locale)
}

View file

@ -0,0 +1,11 @@
package org.schabi.newpipe.extractor.timeago;
public enum TimeAgoUnit {
SECONDS,
MINUTES,
HOURS,
DAYS,
WEEKS,
MONTHS,
YEARS
}

View file

@ -0,0 +1,29 @@
/**/// DO NOT MODIFY THIS FILE MANUALLY
/**/// This class was automatically generated by "GeneratePatternClasses.java",
/**/// modify the "unique_patterns.json" and re-generate instead.
package org.schabi.newpipe.extractor.timeago.patterns;
import org.schabi.newpipe.extractor.timeago.PatternsHolder;
public class af extends PatternsHolder {
private static final String WORD_SEPARATOR = " ";
private static final String[]
SECONDS /**/ = {"sekonde", "sekondes"},
MINUTES /**/ = {"minute", "minuut"},
HOURS /**/ = {"ure", "uur"},
DAYS /**/ = {"dae", "dag"},
WEEKS /**/ = {"week", "weke"},
MONTHS /**/ = {"maand", "maande"},
YEARS /**/ = {"jaar"};
private static final af INSTANCE = new af();
public static af getInstance() {
return INSTANCE;
}
private af() {
super(WORD_SEPARATOR, SECONDS, MINUTES, HOURS, DAYS, WEEKS, MONTHS, YEARS);
}
}

View file

@ -0,0 +1,29 @@
/**/// DO NOT MODIFY THIS FILE MANUALLY
/**/// This class was automatically generated by "GeneratePatternClasses.java",
/**/// modify the "unique_patterns.json" and re-generate instead.
package org.schabi.newpipe.extractor.timeago.patterns;
import org.schabi.newpipe.extractor.timeago.PatternsHolder;
public class am extends PatternsHolder {
private static final String WORD_SEPARATOR = " ";
private static final String[]
SECONDS /**/ = {"ሰኮንዶች", "ሴኮንድ"},
MINUTES /**/ = {"ደቂቃ", "ደቂቃዎች"},
HOURS /**/ = {"ሰዓት", "ሰዓቶች"},
DAYS /**/ = {"ቀን", "ቀኖች"},
WEEKS /**/ = {"ሳምንታት", "ሳምንት"},
MONTHS /**/ = {"ወራት", "ወር"},
YEARS /**/ = {"ዓመታት", "ዓመት"};
private static final am INSTANCE = new am();
public static am getInstance() {
return INSTANCE;
}
private am() {
super(WORD_SEPARATOR, SECONDS, MINUTES, HOURS, DAYS, WEEKS, MONTHS, YEARS);
}
}

View file

@ -0,0 +1,29 @@
/**/// DO NOT MODIFY THIS FILE MANUALLY
/**/// This class was automatically generated by "GeneratePatternClasses.java",
/**/// modify the "unique_patterns.json" and re-generate instead.
package org.schabi.newpipe.extractor.timeago.patterns;
import org.schabi.newpipe.extractor.timeago.PatternsHolder;
public class ar extends PatternsHolder {
private static final String WORD_SEPARATOR = " ";
private static final String[]
SECONDS /**/ = {"ثانية", "ثانيتين", "ثوانٍ"},
MINUTES /**/ = {"دقائق", "دقيقة", "دقيقتين"},
HOURS /**/ = {"ساعات", "ساعة", "ساعتين"},
DAYS /**/ = {"أيام", "يوم", "يومين"},
WEEKS /**/ = {"أسابيع", "أسبوع", "أسبوعين"},
MONTHS /**/ = {"أشهر", "شهر", "شهرين", "شهرًا"},
YEARS /**/ = {"سنة", "سنتين", "سنوات"};
private static final ar INSTANCE = new ar();
public static ar getInstance() {
return INSTANCE;
}
private ar() {
super(WORD_SEPARATOR, SECONDS, MINUTES, HOURS, DAYS, WEEKS, MONTHS, YEARS);
}
}

View file

@ -0,0 +1,29 @@
/**/// DO NOT MODIFY THIS FILE MANUALLY
/**/// This class was automatically generated by "GeneratePatternClasses.java",
/**/// modify the "unique_patterns.json" and re-generate instead.
package org.schabi.newpipe.extractor.timeago.patterns;
import org.schabi.newpipe.extractor.timeago.PatternsHolder;
public class az extends PatternsHolder {
private static final String WORD_SEPARATOR = " ";
private static final String[]
SECONDS /**/ = {"saniyə"},
MINUTES /**/ = {"dəqiqə"},
HOURS /**/ = {"saat"},
DAYS /**/ = {"gün"},
WEEKS /**/ = {"həftə"},
MONTHS /**/ = {"ay"},
YEARS /**/ = {"il"};
private static final az INSTANCE = new az();
public static az getInstance() {
return INSTANCE;
}
private az() {
super(WORD_SEPARATOR, SECONDS, MINUTES, HOURS, DAYS, WEEKS, MONTHS, YEARS);
}
}

View file

@ -0,0 +1,29 @@
/**/// DO NOT MODIFY THIS FILE MANUALLY
/**/// This class was automatically generated by "GeneratePatternClasses.java",
/**/// modify the "unique_patterns.json" and re-generate instead.
package org.schabi.newpipe.extractor.timeago.patterns;
import org.schabi.newpipe.extractor.timeago.PatternsHolder;
public class be extends PatternsHolder {
private static final String WORD_SEPARATOR = " ";
private static final String[]
SECONDS /**/ = {"секунд", "секунду", "секунды"},
MINUTES /**/ = {"хвілін", "хвіліну", "хвіліны"},
HOURS /**/ = {"гадзін", "гадзіну", "гадзіны"},
DAYS /**/ = {"дзень", "дзён", "дня", "дні"},
WEEKS /**/ = {"тыдзень", "тыдня", "тыдні"},
MONTHS /**/ = {"месяц", "месяца", "месяцы", "месяцаў"},
YEARS /**/ = {"год", "года", "гады", "гадоў"};
private static final be INSTANCE = new be();
public static be getInstance() {
return INSTANCE;
}
private be() {
super(WORD_SEPARATOR, SECONDS, MINUTES, HOURS, DAYS, WEEKS, MONTHS, YEARS);
}
}

View file

@ -0,0 +1,29 @@
/**/// DO NOT MODIFY THIS FILE MANUALLY
/**/// This class was automatically generated by "GeneratePatternClasses.java",
/**/// modify the "unique_patterns.json" and re-generate instead.
package org.schabi.newpipe.extractor.timeago.patterns;
import org.schabi.newpipe.extractor.timeago.PatternsHolder;
public class bg extends PatternsHolder {
private static final String WORD_SEPARATOR = " ";
private static final String[]
SECONDS /**/ = {"секунда", "секунди"},
MINUTES /**/ = {"минута", "минути"},
HOURS /**/ = {"час", "часа"},
DAYS /**/ = {"ден", "дни"},
WEEKS /**/ = {"седмица", "седмици"},
MONTHS /**/ = {"месец", "месеца"},
YEARS /**/ = {"година", "години"};
private static final bg INSTANCE = new bg();
public static bg getInstance() {
return INSTANCE;
}
private bg() {
super(WORD_SEPARATOR, SECONDS, MINUTES, HOURS, DAYS, WEEKS, MONTHS, YEARS);
}
}

View file

@ -0,0 +1,29 @@
/**/// DO NOT MODIFY THIS FILE MANUALLY
/**/// This class was automatically generated by "GeneratePatternClasses.java",
/**/// modify the "unique_patterns.json" and re-generate instead.
package org.schabi.newpipe.extractor.timeago.patterns;
import org.schabi.newpipe.extractor.timeago.PatternsHolder;
public class bn extends PatternsHolder {
private static final String WORD_SEPARATOR = " ";
private static final String[]
SECONDS /**/ = {"সেকেন্ড"},
MINUTES /**/ = {"মিনিট"},
HOURS /**/ = {"ঘণ্টা"},
DAYS /**/ = {"দিন"},
WEEKS /**/ = {"সপ্তাহ"},
MONTHS /**/ = {"মাস"},
YEARS /**/ = {"বছর"};
private static final bn INSTANCE = new bn();
public static bn getInstance() {
return INSTANCE;
}
private bn() {
super(WORD_SEPARATOR, SECONDS, MINUTES, HOURS, DAYS, WEEKS, MONTHS, YEARS);
}
}

View file

@ -0,0 +1,29 @@
/**/// DO NOT MODIFY THIS FILE MANUALLY
/**/// This class was automatically generated by "GeneratePatternClasses.java",
/**/// modify the "unique_patterns.json" and re-generate instead.
package org.schabi.newpipe.extractor.timeago.patterns;
import org.schabi.newpipe.extractor.timeago.PatternsHolder;
public class bs extends PatternsHolder {
private static final String WORD_SEPARATOR = " ";
private static final String[]
SECONDS /**/ = {"sekundi", "sekunde", "sekundu"},
MINUTES /**/ = {"minuta", "minute", "minutu"},
HOURS /**/ = {"h", "sat", "sata", "sati"},
DAYS /**/ = {"dan", "dana"},
WEEKS /**/ = {"sedm."},
MONTHS /**/ = {"mj.", "mjesec", "mjeseca", "mjeseci"},
YEARS /**/ = {"godina", "godine", "godinu"};
private static final bs INSTANCE = new bs();
public static bs getInstance() {
return INSTANCE;
}
private bs() {
super(WORD_SEPARATOR, SECONDS, MINUTES, HOURS, DAYS, WEEKS, MONTHS, YEARS);
}
}

View file

@ -0,0 +1,29 @@
/**/// DO NOT MODIFY THIS FILE MANUALLY
/**/// This class was automatically generated by "GeneratePatternClasses.java",
/**/// modify the "unique_patterns.json" and re-generate instead.
package org.schabi.newpipe.extractor.timeago.patterns;
import org.schabi.newpipe.extractor.timeago.PatternsHolder;
public class ca extends PatternsHolder {
private static final String WORD_SEPARATOR = " ";
private static final String[]
SECONDS /**/ = {"segon", "segons"},
MINUTES /**/ = {"minut", "minuts"},
HOURS /**/ = {"hora", "hores"},
DAYS /**/ = {"dia", "dies"},
WEEKS /**/ = {"setmana", "setmanes"},
MONTHS /**/ = {"mes", "mesos"},
YEARS /**/ = {"any", "anys"};
private static final ca INSTANCE = new ca();
public static ca getInstance() {
return INSTANCE;
}
private ca() {
super(WORD_SEPARATOR, SECONDS, MINUTES, HOURS, DAYS, WEEKS, MONTHS, YEARS);
}
}

View file

@ -0,0 +1,29 @@
/**/// DO NOT MODIFY THIS FILE MANUALLY
/**/// This class was automatically generated by "GeneratePatternClasses.java",
/**/// modify the "unique_patterns.json" and re-generate instead.
package org.schabi.newpipe.extractor.timeago.patterns;
import org.schabi.newpipe.extractor.timeago.PatternsHolder;
public class cs extends PatternsHolder {
private static final String WORD_SEPARATOR = " ";
private static final String[]
SECONDS /**/ = {"sekundami", "sekundou"},
MINUTES /**/ = {"minutami", "minutou"},
HOURS /**/ = {"hodinami", "hodinou"},
DAYS /**/ = {"dny", "včera"},
WEEKS /**/ = {"týdnem", "týdny"},
MONTHS /**/ = {"měsícem", "měsíci"},
YEARS /**/ = {"rokem", "roky", "lety"};
private static final cs INSTANCE = new cs();
public static cs getInstance() {
return INSTANCE;
}
private cs() {
super(WORD_SEPARATOR, SECONDS, MINUTES, HOURS, DAYS, WEEKS, MONTHS, YEARS);
}
}

View file

@ -0,0 +1,29 @@
/**/// DO NOT MODIFY THIS FILE MANUALLY
/**/// This class was automatically generated by "GeneratePatternClasses.java",
/**/// modify the "unique_patterns.json" and re-generate instead.
package org.schabi.newpipe.extractor.timeago.patterns;
import org.schabi.newpipe.extractor.timeago.PatternsHolder;
public class da extends PatternsHolder {
private static final String WORD_SEPARATOR = " ";
private static final String[]
SECONDS /**/ = {"sekund", "sekunder"},
MINUTES /**/ = {"minut", "minutter"},
HOURS /**/ = {"time", "timer"},
DAYS /**/ = {"dag", "dage"},
WEEKS /**/ = {"uge", "uger"},
MONTHS /**/ = {"måned", "måneder"},
YEARS /**/ = {"år"};
private static final da INSTANCE = new da();
public static da getInstance() {
return INSTANCE;
}
private da() {
super(WORD_SEPARATOR, SECONDS, MINUTES, HOURS, DAYS, WEEKS, MONTHS, YEARS);
}
}

View file

@ -0,0 +1,29 @@
/**/// DO NOT MODIFY THIS FILE MANUALLY
/**/// This class was automatically generated by "GeneratePatternClasses.java",
/**/// modify the "unique_patterns.json" and re-generate instead.
package org.schabi.newpipe.extractor.timeago.patterns;
import org.schabi.newpipe.extractor.timeago.PatternsHolder;
public class de extends PatternsHolder {
private static final String WORD_SEPARATOR = " ";
private static final String[]
SECONDS /**/ = {"Sekunde", "Sekunden"},
MINUTES /**/ = {"Minute", "Minuten"},
HOURS /**/ = {"Stunde", "Stunden"},
DAYS /**/ = {"Tag", "Tagen"},
WEEKS /**/ = {"Woche", "Wochen"},
MONTHS /**/ = {"Monat", "Monaten"},
YEARS /**/ = {"Jahr", "Jahren"};
private static final de INSTANCE = new de();
public static de getInstance() {
return INSTANCE;
}
private de() {
super(WORD_SEPARATOR, SECONDS, MINUTES, HOURS, DAYS, WEEKS, MONTHS, YEARS);
}
}

View file

@ -0,0 +1,29 @@
/**/// DO NOT MODIFY THIS FILE MANUALLY
/**/// This class was automatically generated by "GeneratePatternClasses.java",
/**/// modify the "unique_patterns.json" and re-generate instead.
package org.schabi.newpipe.extractor.timeago.patterns;
import org.schabi.newpipe.extractor.timeago.PatternsHolder;
public class el extends PatternsHolder {
private static final String WORD_SEPARATOR = " ";
private static final String[]
SECONDS /**/ = {"δευτερόλεπτα", "δευτερόλεπτο"},
MINUTES /**/ = {"λεπτά", "λεπτό"},
HOURS /**/ = {"ώρα", "ώρες"},
DAYS /**/ = {"ημέρα", "ημέρες"},
WEEKS /**/ = {"εβδομάδα", "εβδομάδες"},
MONTHS /**/ = {"μήνα", "μήνες"},
YEARS /**/ = {"χρόνια", "χρόνο"};
private static final el INSTANCE = new el();
public static el getInstance() {
return INSTANCE;
}
private el() {
super(WORD_SEPARATOR, SECONDS, MINUTES, HOURS, DAYS, WEEKS, MONTHS, YEARS);
}
}

View file

@ -0,0 +1,29 @@
/**/// DO NOT MODIFY THIS FILE MANUALLY
/**/// This class was automatically generated by "GeneratePatternClasses.java",
/**/// modify the "unique_patterns.json" and re-generate instead.
package org.schabi.newpipe.extractor.timeago.patterns;
import org.schabi.newpipe.extractor.timeago.PatternsHolder;
public class en extends PatternsHolder {
private static final String WORD_SEPARATOR = " ";
private static final String[]
SECONDS /**/ = {"second", "seconds"},
MINUTES /**/ = {"minute", "minutes"},
HOURS /**/ = {"hour", "hours"},
DAYS /**/ = {"day", "days"},
WEEKS /**/ = {"week", "weeks"},
MONTHS /**/ = {"month", "months"},
YEARS /**/ = {"year", "years"};
private static final en INSTANCE = new en();
public static en getInstance() {
return INSTANCE;
}
private en() {
super(WORD_SEPARATOR, SECONDS, MINUTES, HOURS, DAYS, WEEKS, MONTHS, YEARS);
}
}

View file

@ -0,0 +1,29 @@
/**/// DO NOT MODIFY THIS FILE MANUALLY
/**/// This class was automatically generated by "GeneratePatternClasses.java",
/**/// modify the "unique_patterns.json" and re-generate instead.
package org.schabi.newpipe.extractor.timeago.patterns;
import org.schabi.newpipe.extractor.timeago.PatternsHolder;
public class en_GB extends PatternsHolder {
private static final String WORD_SEPARATOR = " ";
private static final String[]
SECONDS /**/ = {"second", "seconds"},
MINUTES /**/ = {"minute", "minutes"},
HOURS /**/ = {"hour", "hours"},
DAYS /**/ = {"day", "days"},
WEEKS /**/ = {"week", "weeks"},
MONTHS /**/ = {"month", "months"},
YEARS /**/ = {"year", "years"};
private static final en_GB INSTANCE = new en_GB();
public static en_GB getInstance() {
return INSTANCE;
}
private en_GB() {
super(WORD_SEPARATOR, SECONDS, MINUTES, HOURS, DAYS, WEEKS, MONTHS, YEARS);
}
}

View file

@ -0,0 +1,29 @@
/**/// DO NOT MODIFY THIS FILE MANUALLY
/**/// This class was automatically generated by "GeneratePatternClasses.java",
/**/// modify the "unique_patterns.json" and re-generate instead.
package org.schabi.newpipe.extractor.timeago.patterns;
import org.schabi.newpipe.extractor.timeago.PatternsHolder;
public class es extends PatternsHolder {
private static final String WORD_SEPARATOR = " ";
private static final String[]
SECONDS /**/ = {"segundo", "segundos"},
MINUTES /**/ = {"minuto", "minutos"},
HOURS /**/ = {"hora", "horas"},
DAYS /**/ = {"día", "días"},
WEEKS /**/ = {"semana", "semanas"},
MONTHS /**/ = {"mes", "meses"},
YEARS /**/ = {"año", "años"};
private static final es INSTANCE = new es();
public static es getInstance() {
return INSTANCE;
}
private es() {
super(WORD_SEPARATOR, SECONDS, MINUTES, HOURS, DAYS, WEEKS, MONTHS, YEARS);
}
}

View file

@ -0,0 +1,29 @@
/**/// DO NOT MODIFY THIS FILE MANUALLY
/**/// This class was automatically generated by "GeneratePatternClasses.java",
/**/// modify the "unique_patterns.json" and re-generate instead.
package org.schabi.newpipe.extractor.timeago.patterns;
import org.schabi.newpipe.extractor.timeago.PatternsHolder;
public class es_419 extends PatternsHolder {
private static final String WORD_SEPARATOR = " ";
private static final String[]
SECONDS /**/ = {"segundo", "segundos"},
MINUTES /**/ = {"minuto", "minutos"},
HOURS /**/ = {"hora", "horas"},
DAYS /**/ = {"día", "días"},
WEEKS /**/ = {"semana", "semanas"},
MONTHS /**/ = {"mes", "meses"},
YEARS /**/ = {"año", "años"};
private static final es_419 INSTANCE = new es_419();
public static es_419 getInstance() {
return INSTANCE;
}
private es_419() {
super(WORD_SEPARATOR, SECONDS, MINUTES, HOURS, DAYS, WEEKS, MONTHS, YEARS);
}
}

View file

@ -0,0 +1,29 @@
/**/// DO NOT MODIFY THIS FILE MANUALLY
/**/// This class was automatically generated by "GeneratePatternClasses.java",
/**/// modify the "unique_patterns.json" and re-generate instead.
package org.schabi.newpipe.extractor.timeago.patterns;
import org.schabi.newpipe.extractor.timeago.PatternsHolder;
public class es_US extends PatternsHolder {
private static final String WORD_SEPARATOR = " ";
private static final String[]
SECONDS /**/ = {"segundo", "segundos"},
MINUTES /**/ = {"minuto", "minutos"},
HOURS /**/ = {"hora", "horas"},
DAYS /**/ = {"día", "días"},
WEEKS /**/ = {"semana", "semanas"},
MONTHS /**/ = {"mes", "meses"},
YEARS /**/ = {"año", "años"};
private static final es_US INSTANCE = new es_US();
public static es_US getInstance() {
return INSTANCE;
}
private es_US() {
super(WORD_SEPARATOR, SECONDS, MINUTES, HOURS, DAYS, WEEKS, MONTHS, YEARS);
}
}

View file

@ -0,0 +1,29 @@
/**/// DO NOT MODIFY THIS FILE MANUALLY
/**/// This class was automatically generated by "GeneratePatternClasses.java",
/**/// modify the "unique_patterns.json" and re-generate instead.
package org.schabi.newpipe.extractor.timeago.patterns;
import org.schabi.newpipe.extractor.timeago.PatternsHolder;
public class et extends PatternsHolder {
private static final String WORD_SEPARATOR = " ";
private static final String[]
SECONDS /**/ = {"sekund", "sekundit"},
MINUTES /**/ = {"minut", "minutit"},
HOURS /**/ = {"tund", "tundi"},
DAYS /**/ = {"päev", "päeva"},
WEEKS /**/ = {"nädal", "nädalat"},
MONTHS /**/ = {"kuu", "kuud"},
YEARS /**/ = {"aasta", "aastat"};
private static final et INSTANCE = new et();
public static et getInstance() {
return INSTANCE;
}
private et() {
super(WORD_SEPARATOR, SECONDS, MINUTES, HOURS, DAYS, WEEKS, MONTHS, YEARS);
}
}

View file

@ -0,0 +1,29 @@
/**/// DO NOT MODIFY THIS FILE MANUALLY
/**/// This class was automatically generated by "GeneratePatternClasses.java",
/**/// modify the "unique_patterns.json" and re-generate instead.
package org.schabi.newpipe.extractor.timeago.patterns;
import org.schabi.newpipe.extractor.timeago.PatternsHolder;
public class eu extends PatternsHolder {
private static final String WORD_SEPARATOR = " ";
private static final String[]
SECONDS /**/ = {"segundo"},
MINUTES /**/ = {"minutu"},
HOURS /**/ = {"ordu", "ordubete"},
DAYS /**/ = {"egun"},
WEEKS /**/ = {"aste", "astebete"},
MONTHS /**/ = {"hilabete"},
YEARS /**/ = {"urte", "urtebete"};
private static final eu INSTANCE = new eu();
public static eu getInstance() {
return INSTANCE;
}
private eu() {
super(WORD_SEPARATOR, SECONDS, MINUTES, HOURS, DAYS, WEEKS, MONTHS, YEARS);
}
}

View file

@ -0,0 +1,29 @@
/**/// DO NOT MODIFY THIS FILE MANUALLY
/**/// This class was automatically generated by "GeneratePatternClasses.java",
/**/// modify the "unique_patterns.json" and re-generate instead.
package org.schabi.newpipe.extractor.timeago.patterns;
import org.schabi.newpipe.extractor.timeago.PatternsHolder;
public class fa extends PatternsHolder {
private static final String WORD_SEPARATOR = " ";
private static final String[]
SECONDS /**/ = {"ثانیه"},
MINUTES /**/ = {"دقیقه"},
HOURS /**/ = {"ساعت"},
DAYS /**/ = {"روز"},
WEEKS /**/ = {"هفته"},
MONTHS /**/ = {"ماه"},
YEARS /**/ = {"سال"};
private static final fa INSTANCE = new fa();
public static fa getInstance() {
return INSTANCE;
}
private fa() {
super(WORD_SEPARATOR, SECONDS, MINUTES, HOURS, DAYS, WEEKS, MONTHS, YEARS);
}
}

View file

@ -0,0 +1,29 @@
/**/// DO NOT MODIFY THIS FILE MANUALLY
/**/// This class was automatically generated by "GeneratePatternClasses.java",
/**/// modify the "unique_patterns.json" and re-generate instead.
package org.schabi.newpipe.extractor.timeago.patterns;
import org.schabi.newpipe.extractor.timeago.PatternsHolder;
public class fi extends PatternsHolder {
private static final String WORD_SEPARATOR = " ";
private static final String[]
SECONDS /**/ = {"sekunti", "sekuntia"},
MINUTES /**/ = {"minuutti", "minuuttia"},
HOURS /**/ = {"tunti", "tuntia"},
DAYS /**/ = {"päivä", "päivää"},
WEEKS /**/ = {"viikko", "viikkoa"},
MONTHS /**/ = {"kuukausi", "kuukautta"},
YEARS /**/ = {"vuosi", "vuotta"};
private static final fi INSTANCE = new fi();
public static fi getInstance() {
return INSTANCE;
}
private fi() {
super(WORD_SEPARATOR, SECONDS, MINUTES, HOURS, DAYS, WEEKS, MONTHS, YEARS);
}
}

View file

@ -0,0 +1,29 @@
/**/// DO NOT MODIFY THIS FILE MANUALLY
/**/// This class was automatically generated by "GeneratePatternClasses.java",
/**/// modify the "unique_patterns.json" and re-generate instead.
package org.schabi.newpipe.extractor.timeago.patterns;
import org.schabi.newpipe.extractor.timeago.PatternsHolder;
public class fil extends PatternsHolder {
private static final String WORD_SEPARATOR = " ";
private static final String[]
SECONDS /**/ = {"segundo"},
MINUTES /**/ = {"minuto"},
HOURS /**/ = {"oras"},
DAYS /**/ = {"araw"},
WEEKS /**/ = {"linggo"},
MONTHS /**/ = {"buwan"},
YEARS /**/ = {"taon"};
private static final fil INSTANCE = new fil();
public static fil getInstance() {
return INSTANCE;
}
private fil() {
super(WORD_SEPARATOR, SECONDS, MINUTES, HOURS, DAYS, WEEKS, MONTHS, YEARS);
}
}

View file

@ -0,0 +1,29 @@
/**/// DO NOT MODIFY THIS FILE MANUALLY
/**/// This class was automatically generated by "GeneratePatternClasses.java",
/**/// modify the "unique_patterns.json" and re-generate instead.
package org.schabi.newpipe.extractor.timeago.patterns;
import org.schabi.newpipe.extractor.timeago.PatternsHolder;
public class fr extends PatternsHolder {
private static final String WORD_SEPARATOR = " ";
private static final String[]
SECONDS /**/ = {"seconde", "secondes"},
MINUTES /**/ = {"minute", "minutes"},
HOURS /**/ = {"heure", "heures"},
DAYS /**/ = {"jour", "jours"},
WEEKS /**/ = {"semaine", "semaines"},
MONTHS /**/ = {"mois"},
YEARS /**/ = {"an", "ans"};
private static final fr INSTANCE = new fr();
public static fr getInstance() {
return INSTANCE;
}
private fr() {
super(WORD_SEPARATOR, SECONDS, MINUTES, HOURS, DAYS, WEEKS, MONTHS, YEARS);
}
}

View file

@ -0,0 +1,29 @@
/**/// DO NOT MODIFY THIS FILE MANUALLY
/**/// This class was automatically generated by "GeneratePatternClasses.java",
/**/// modify the "unique_patterns.json" and re-generate instead.
package org.schabi.newpipe.extractor.timeago.patterns;
import org.schabi.newpipe.extractor.timeago.PatternsHolder;
public class fr_CA extends PatternsHolder {
private static final String WORD_SEPARATOR = " ";
private static final String[]
SECONDS /**/ = {"seconde", "secondes"},
MINUTES /**/ = {"minute", "minutes"},
HOURS /**/ = {"heures", "heure"},
DAYS /**/ = {"jour", "jours"},
WEEKS /**/ = {"semaine", "semaines"},
MONTHS /**/ = {"mois"},
YEARS /**/ = {"an", "ans"};
private static final fr_CA INSTANCE = new fr_CA();
public static fr_CA getInstance() {
return INSTANCE;
}
private fr_CA() {
super(WORD_SEPARATOR, SECONDS, MINUTES, HOURS, DAYS, WEEKS, MONTHS, YEARS);
}
}

View file

@ -0,0 +1,29 @@
/**/// DO NOT MODIFY THIS FILE MANUALLY
/**/// This class was automatically generated by "GeneratePatternClasses.java",
/**/// modify the "unique_patterns.json" and re-generate instead.
package org.schabi.newpipe.extractor.timeago.patterns;
import org.schabi.newpipe.extractor.timeago.PatternsHolder;
public class gl extends PatternsHolder {
private static final String WORD_SEPARATOR = " ";
private static final String[]
SECONDS /**/ = {"segundo", "segundos"},
MINUTES /**/ = {"minuto", "minutos"},
HOURS /**/ = {"hora", "horas"},
DAYS /**/ = {"día", "días"},
WEEKS /**/ = {"semana", "semanas"},
MONTHS /**/ = {"mes", "meses"},
YEARS /**/ = {"ano", "anos"};
private static final gl INSTANCE = new gl();
public static gl getInstance() {
return INSTANCE;
}
private gl() {
super(WORD_SEPARATOR, SECONDS, MINUTES, HOURS, DAYS, WEEKS, MONTHS, YEARS);
}
}

View file

@ -0,0 +1,29 @@
/**/// DO NOT MODIFY THIS FILE MANUALLY
/**/// This class was automatically generated by "GeneratePatternClasses.java",
/**/// modify the "unique_patterns.json" and re-generate instead.
package org.schabi.newpipe.extractor.timeago.patterns;
import org.schabi.newpipe.extractor.timeago.PatternsHolder;
public class gu extends PatternsHolder {
private static final String WORD_SEPARATOR = " ";
private static final String[]
SECONDS /**/ = {"સેકંડ"},
MINUTES /**/ = {"મિનિટ"},
HOURS /**/ = {"કલાક"},
DAYS /**/ = {"દિવસ"},
WEEKS /**/ = {"અઠવાડિયા"},
MONTHS /**/ = {"મહિના"},
YEARS /**/ = {"વર્ષ"};
private static final gu INSTANCE = new gu();
public static gu getInstance() {
return INSTANCE;
}
private gu() {
super(WORD_SEPARATOR, SECONDS, MINUTES, HOURS, DAYS, WEEKS, MONTHS, YEARS);
}
}

View file

@ -0,0 +1,29 @@
/**/// DO NOT MODIFY THIS FILE MANUALLY
/**/// This class was automatically generated by "GeneratePatternClasses.java",
/**/// modify the "unique_patterns.json" and re-generate instead.
package org.schabi.newpipe.extractor.timeago.patterns;
import org.schabi.newpipe.extractor.timeago.PatternsHolder;
public class hi extends PatternsHolder {
private static final String WORD_SEPARATOR = " ";
private static final String[]
SECONDS /**/ = {"सेकंड"},
MINUTES /**/ = {"मिनट"},
HOURS /**/ = {"घंटा", "घंटे"},
DAYS /**/ = {"दिन"},
WEEKS /**/ = {"सप्ताह", "हफ़्ते"},
MONTHS /**/ = {"महीना", "महीने"},
YEARS /**/ = {"वर्ष"};
private static final hi INSTANCE = new hi();
public static hi getInstance() {
return INSTANCE;
}
private hi() {
super(WORD_SEPARATOR, SECONDS, MINUTES, HOURS, DAYS, WEEKS, MONTHS, YEARS);
}
}

View file

@ -0,0 +1,29 @@
/**/// DO NOT MODIFY THIS FILE MANUALLY
/**/// This class was automatically generated by "GeneratePatternClasses.java",
/**/// modify the "unique_patterns.json" and re-generate instead.
package org.schabi.newpipe.extractor.timeago.patterns;
import org.schabi.newpipe.extractor.timeago.PatternsHolder;
public class hr extends PatternsHolder {
private static final String WORD_SEPARATOR = " ";
private static final String[]
SECONDS /**/ = {"sekunde", "sekundi", "sekundu"},
MINUTES /**/ = {"minuta", "minute", "minutu"},
HOURS /**/ = {"sat", "sata", "sati"},
DAYS /**/ = {"dan", "dana"},
WEEKS /**/ = {"tjedan", "tjedna"},
MONTHS /**/ = {"mjesec", "mjeseca", "mjeseci"},
YEARS /**/ = {"godina", "godine", "godinu"};
private static final hr INSTANCE = new hr();
public static hr getInstance() {
return INSTANCE;
}
private hr() {
super(WORD_SEPARATOR, SECONDS, MINUTES, HOURS, DAYS, WEEKS, MONTHS, YEARS);
}
}

View file

@ -0,0 +1,29 @@
/**/// DO NOT MODIFY THIS FILE MANUALLY
/**/// This class was automatically generated by "GeneratePatternClasses.java",
/**/// modify the "unique_patterns.json" and re-generate instead.
package org.schabi.newpipe.extractor.timeago.patterns;
import org.schabi.newpipe.extractor.timeago.PatternsHolder;
public class hu extends PatternsHolder {
private static final String WORD_SEPARATOR = " ";
private static final String[]
SECONDS /**/ = {"másodperce"},
MINUTES /**/ = {"perce"},
HOURS /**/ = {"órája"},
DAYS /**/ = {"napja"},
WEEKS /**/ = {"hete"},
MONTHS /**/ = {"hónapja"},
YEARS /**/ = {"éve"};
private static final hu INSTANCE = new hu();
public static hu getInstance() {
return INSTANCE;
}
private hu() {
super(WORD_SEPARATOR, SECONDS, MINUTES, HOURS, DAYS, WEEKS, MONTHS, YEARS);
}
}

View file

@ -0,0 +1,29 @@
/**/// DO NOT MODIFY THIS FILE MANUALLY
/**/// This class was automatically generated by "GeneratePatternClasses.java",
/**/// modify the "unique_patterns.json" and re-generate instead.
package org.schabi.newpipe.extractor.timeago.patterns;
import org.schabi.newpipe.extractor.timeago.PatternsHolder;
public class hy extends PatternsHolder {
private static final String WORD_SEPARATOR = " ";
private static final String[]
SECONDS /**/ = {"վայրկյան"},
MINUTES /**/ = {"րոպե"},
HOURS /**/ = {"ժամ"},
DAYS /**/ = {"օր"},
WEEKS /**/ = {"շաբաթ"},
MONTHS /**/ = {"ամիս"},
YEARS /**/ = {"տարի"};
private static final hy INSTANCE = new hy();
public static hy getInstance() {
return INSTANCE;
}
private hy() {
super(WORD_SEPARATOR, SECONDS, MINUTES, HOURS, DAYS, WEEKS, MONTHS, YEARS);
}
}

View file

@ -0,0 +1,29 @@
/**/// DO NOT MODIFY THIS FILE MANUALLY
/**/// This class was automatically generated by "GeneratePatternClasses.java",
/**/// modify the "unique_patterns.json" and re-generate instead.
package org.schabi.newpipe.extractor.timeago.patterns;
import org.schabi.newpipe.extractor.timeago.PatternsHolder;
public class id extends PatternsHolder {
private static final String WORD_SEPARATOR = " ";
private static final String[]
SECONDS /**/ = {"detik"},
MINUTES /**/ = {"menit"},
HOURS /**/ = {"jam"},
DAYS /**/ = {"hari"},
WEEKS /**/ = {"minggu"},
MONTHS /**/ = {"bulan"},
YEARS /**/ = {"tahun"};
private static final id INSTANCE = new id();
public static id getInstance() {
return INSTANCE;
}
private id() {
super(WORD_SEPARATOR, SECONDS, MINUTES, HOURS, DAYS, WEEKS, MONTHS, YEARS);
}
}

View file

@ -0,0 +1,29 @@
/**/// DO NOT MODIFY THIS FILE MANUALLY
/**/// This class was automatically generated by "GeneratePatternClasses.java",
/**/// modify the "unique_patterns.json" and re-generate instead.
package org.schabi.newpipe.extractor.timeago.patterns;
import org.schabi.newpipe.extractor.timeago.PatternsHolder;
public class is extends PatternsHolder {
private static final String WORD_SEPARATOR = " ";
private static final String[]
SECONDS /**/ = {"sekúndu", "sekúndum", "second", "seconds"},
MINUTES /**/ = {"mínútu", "mínútum", "minute", "minutes"},
HOURS /**/ = {"klukkustund", "klukkustundum", "hour", "hours"},
DAYS /**/ = {"degi", "dögum", "day", "days"},
WEEKS /**/ = {"viku", "vikum", "week", "weeks"},
MONTHS /**/ = {"mánuði", "mánuðum"},
YEARS /**/ = {"ári", "árum"};
private static final is INSTANCE = new is();
public static is getInstance() {
return INSTANCE;
}
private is() {
super(WORD_SEPARATOR, SECONDS, MINUTES, HOURS, DAYS, WEEKS, MONTHS, YEARS);
}
}

View file

@ -0,0 +1,29 @@
/**/// DO NOT MODIFY THIS FILE MANUALLY
/**/// This class was automatically generated by "GeneratePatternClasses.java",
/**/// modify the "unique_patterns.json" and re-generate instead.
package org.schabi.newpipe.extractor.timeago.patterns;
import org.schabi.newpipe.extractor.timeago.PatternsHolder;
public class it extends PatternsHolder {
private static final String WORD_SEPARATOR = " ";
private static final String[]
SECONDS /**/ = {"secondi", "secondo"},
MINUTES /**/ = {"minuti", "minuto"},
HOURS /**/ = {"ora", "ore"},
DAYS /**/ = {"giorni", "giorno"},
WEEKS /**/ = {"settimana", "settimane"},
MONTHS /**/ = {"mese", "mesi"},
YEARS /**/ = {"anni", "anno"};
private static final it INSTANCE = new it();
public static it getInstance() {
return INSTANCE;
}
private it() {
super(WORD_SEPARATOR, SECONDS, MINUTES, HOURS, DAYS, WEEKS, MONTHS, YEARS);
}
}

View file

@ -0,0 +1,35 @@
/**/// DO NOT MODIFY THIS FILE MANUALLY
/**/// This class was automatically generated by "GeneratePatternClasses.java",
/**/// modify the "unique_patterns.json" and re-generate instead.
package org.schabi.newpipe.extractor.timeago.patterns;
import org.schabi.newpipe.extractor.timeago.PatternsHolder;
import org.schabi.newpipe.extractor.timeago.TimeAgoUnit;
public class iw extends PatternsHolder {
private static final String WORD_SEPARATOR = " ";
private static final String[]
SECONDS /**/ = {"שניות", "שנייה"},
MINUTES /**/ = {"דקה", "דקות"},
HOURS /**/ = {"שעה", "שעות"},
DAYS /**/ = {"יום", "ימים"},
WEEKS /**/ = {"שבוע", "שבועות"},
MONTHS /**/ = {"חודש", "חודשים"},
YEARS /**/ = {"שנה", "שנים"};
private static final iw INSTANCE = new iw();
public static iw getInstance() {
return INSTANCE;
}
private iw() {
super(WORD_SEPARATOR, SECONDS, MINUTES, HOURS, DAYS, WEEKS, MONTHS, YEARS);
putSpecialCase(TimeAgoUnit.HOURS, "שעתיים", 2);
putSpecialCase(TimeAgoUnit.DAYS, "יומיים", 2);
putSpecialCase(TimeAgoUnit.WEEKS, "שבועיים", 2);
putSpecialCase(TimeAgoUnit.MONTHS, "חודשיים", 2);
putSpecialCase(TimeAgoUnit.YEARS, "שנתיים", 2);
}
}

View file

@ -0,0 +1,29 @@
/**/// DO NOT MODIFY THIS FILE MANUALLY
/**/// This class was automatically generated by "GeneratePatternClasses.java",
/**/// modify the "unique_patterns.json" and re-generate instead.
package org.schabi.newpipe.extractor.timeago.patterns;
import org.schabi.newpipe.extractor.timeago.PatternsHolder;
public class ja extends PatternsHolder {
private static final String WORD_SEPARATOR = "";
private static final String[]
SECONDS /**/ = {"秒前"},
MINUTES /**/ = {"分前"},
HOURS /**/ = {"時間前"},
DAYS /**/ = {"日前"},
WEEKS /**/ = {"週間前"},
MONTHS /**/ = {"か月前"},
YEARS /**/ = {"年前"};
private static final ja INSTANCE = new ja();
public static ja getInstance() {
return INSTANCE;
}
private ja() {
super(WORD_SEPARATOR, SECONDS, MINUTES, HOURS, DAYS, WEEKS, MONTHS, YEARS);
}
}

View file

@ -0,0 +1,29 @@
/**/// DO NOT MODIFY THIS FILE MANUALLY
/**/// This class was automatically generated by "GeneratePatternClasses.java",
/**/// modify the "unique_patterns.json" and re-generate instead.
package org.schabi.newpipe.extractor.timeago.patterns;
import org.schabi.newpipe.extractor.timeago.PatternsHolder;
public class ka extends PatternsHolder {
private static final String WORD_SEPARATOR = " ";
private static final String[]
SECONDS /**/ = {"წამის"},
MINUTES /**/ = {"წუთის"},
HOURS /**/ = {"საათის"},
DAYS /**/ = {"დღის"},
WEEKS /**/ = {"კვირის"},
MONTHS /**/ = {"თვის"},
YEARS /**/ = {"წლის"};
private static final ka INSTANCE = new ka();
public static ka getInstance() {
return INSTANCE;
}
private ka() {
super(WORD_SEPARATOR, SECONDS, MINUTES, HOURS, DAYS, WEEKS, MONTHS, YEARS);
}
}

View file

@ -0,0 +1,29 @@
/**/// DO NOT MODIFY THIS FILE MANUALLY
/**/// This class was automatically generated by "GeneratePatternClasses.java",
/**/// modify the "unique_patterns.json" and re-generate instead.
package org.schabi.newpipe.extractor.timeago.patterns;
import org.schabi.newpipe.extractor.timeago.PatternsHolder;
public class kk extends PatternsHolder {
private static final String WORD_SEPARATOR = " ";
private static final String[]
SECONDS /**/ = {"секунд"},
MINUTES /**/ = {"минут"},
HOURS /**/ = {"сағат"},
DAYS /**/ = {"күн"},
WEEKS /**/ = {"апта"},
MONTHS /**/ = {"ай"},
YEARS /**/ = {"жыл"};
private static final kk INSTANCE = new kk();
public static kk getInstance() {
return INSTANCE;
}
private kk() {
super(WORD_SEPARATOR, SECONDS, MINUTES, HOURS, DAYS, WEEKS, MONTHS, YEARS);
}
}

View file

@ -0,0 +1,29 @@
/**/// DO NOT MODIFY THIS FILE MANUALLY
/**/// This class was automatically generated by "GeneratePatternClasses.java",
/**/// modify the "unique_patterns.json" and re-generate instead.
package org.schabi.newpipe.extractor.timeago.patterns;
import org.schabi.newpipe.extractor.timeago.PatternsHolder;
public class km extends PatternsHolder {
private static final String WORD_SEPARATOR = "";
private static final String[]
SECONDS /**/ = {"វិនាទី​មុន", "១វិនាទីមុន"},
MINUTES /**/ = {"នាទីមុន", "១នាទីមុន"},
HOURS /**/ = {"ម៉ោង​មុន", "១ម៉ោង​មុន"},
DAYS /**/ = {"ថ្ងៃមុន", "១ថ្ងៃ​មុន"},
WEEKS /**/ = {"ស​ប្តា​ហ៍​មុន", "១ស​ប្តា​ហ៍​មុន"},
MONTHS /**/ = {"ខែមុន", "១ខែមុន"},
YEARS /**/ = {"ឆ្នាំ​មុន", "១ឆ្នាំមុន"};
private static final km INSTANCE = new km();
public static km getInstance() {
return INSTANCE;
}
private km() {
super(WORD_SEPARATOR, SECONDS, MINUTES, HOURS, DAYS, WEEKS, MONTHS, YEARS);
}
}

View file

@ -0,0 +1,29 @@
/**/// DO NOT MODIFY THIS FILE MANUALLY
/**/// This class was automatically generated by "GeneratePatternClasses.java",
/**/// modify the "unique_patterns.json" and re-generate instead.
package org.schabi.newpipe.extractor.timeago.patterns;
import org.schabi.newpipe.extractor.timeago.PatternsHolder;
public class kn extends PatternsHolder {
private static final String WORD_SEPARATOR = " ";
private static final String[]
SECONDS /**/ = {"ಸೆಕೆಂಡುಗಳ", "ಸೆಕೆಂಡ್"},
MINUTES /**/ = {"ನಿಮಿಷಗಳ", "ನಿಮಿಷದ"},
HOURS /**/ = {"ಗಂಟೆಗಳ", "ಗಂಟೆಯ"},
DAYS /**/ = {"ದಿನಗಳ", "ದಿನದ"},
WEEKS /**/ = {"ವಾರಗಳ", "ವಾರದ"},
MONTHS /**/ = {"ತಿಂಗಳ", "ತಿಂಗಳುಗಳ"},
YEARS /**/ = {"ವರ್ಷಗಳ", "ವರ್ಷದ"};
private static final kn INSTANCE = new kn();
public static kn getInstance() {
return INSTANCE;
}
private kn() {
super(WORD_SEPARATOR, SECONDS, MINUTES, HOURS, DAYS, WEEKS, MONTHS, YEARS);
}
}

View file

@ -0,0 +1,29 @@
/**/// DO NOT MODIFY THIS FILE MANUALLY
/**/// This class was automatically generated by "GeneratePatternClasses.java",
/**/// modify the "unique_patterns.json" and re-generate instead.
package org.schabi.newpipe.extractor.timeago.patterns;
import org.schabi.newpipe.extractor.timeago.PatternsHolder;
public class ko extends PatternsHolder {
private static final String WORD_SEPARATOR = "";
private static final String[]
SECONDS /**/ = {""},
MINUTES /**/ = {""},
HOURS /**/ = {"시간"},
DAYS /**/ = {""},
WEEKS /**/ = {""},
MONTHS /**/ = {"개월"},
YEARS /**/ = {""};
private static final ko INSTANCE = new ko();
public static ko getInstance() {
return INSTANCE;
}
private ko() {
super(WORD_SEPARATOR, SECONDS, MINUTES, HOURS, DAYS, WEEKS, MONTHS, YEARS);
}
}

View file

@ -0,0 +1,29 @@
/**/// DO NOT MODIFY THIS FILE MANUALLY
/**/// This class was automatically generated by "GeneratePatternClasses.java",
/**/// modify the "unique_patterns.json" and re-generate instead.
package org.schabi.newpipe.extractor.timeago.patterns;
import org.schabi.newpipe.extractor.timeago.PatternsHolder;
public class ky extends PatternsHolder {
private static final String WORD_SEPARATOR = " ";
private static final String[]
SECONDS /**/ = {"секунд"},
MINUTES /**/ = {"мүнөт"},
HOURS /**/ = {"саат"},
DAYS /**/ = {"күн"},
WEEKS /**/ = {"апта"},
MONTHS /**/ = {"ай"},
YEARS /**/ = {"жыл"};
private static final ky INSTANCE = new ky();
public static ky getInstance() {
return INSTANCE;
}
private ky() {
super(WORD_SEPARATOR, SECONDS, MINUTES, HOURS, DAYS, WEEKS, MONTHS, YEARS);
}
}

View file

@ -0,0 +1,29 @@
/**/// DO NOT MODIFY THIS FILE MANUALLY
/**/// This class was automatically generated by "GeneratePatternClasses.java",
/**/// modify the "unique_patterns.json" and re-generate instead.
package org.schabi.newpipe.extractor.timeago.patterns;
import org.schabi.newpipe.extractor.timeago.PatternsHolder;
public class lo extends PatternsHolder {
private static final String WORD_SEPARATOR = "";
private static final String[]
SECONDS /**/ = {"ວິນາທີກ່ອນນີ້"},
MINUTES /**/ = {"ນາທີກ່ອນນີ້", "ນາ​ທີ​ກ່ອນ​ນີ້"},
HOURS /**/ = {"ຊົ່ວ​ໂມງ​ກ່ອນ​ນີ້"},
DAYS /**/ = {"ມື້ກ່ອນນີ້"},
WEEKS /**/ = {"ອາ​ທິດ​ກ່ອນ​ນີ້"},
MONTHS /**/ = {"ເດືອນ​ກ່ອນ​ນີ້"},
YEARS /**/ = {"ປີ​ກ່ອນ​ນີ້"};
private static final lo INSTANCE = new lo();
public static lo getInstance() {
return INSTANCE;
}
private lo() {
super(WORD_SEPARATOR, SECONDS, MINUTES, HOURS, DAYS, WEEKS, MONTHS, YEARS);
}
}

View file

@ -0,0 +1,29 @@
/**/// DO NOT MODIFY THIS FILE MANUALLY
/**/// This class was automatically generated by "GeneratePatternClasses.java",
/**/// modify the "unique_patterns.json" and re-generate instead.
package org.schabi.newpipe.extractor.timeago.patterns;
import org.schabi.newpipe.extractor.timeago.PatternsHolder;
public class lt extends PatternsHolder {
private static final String WORD_SEPARATOR = " ";
private static final String[]
SECONDS /**/ = {"sekundes", "sekundę", "sekundžių"},
MINUTES /**/ = {"minutes", "minutę", "minučių"},
HOURS /**/ = {"valandas", "valandą", "valandų"},
DAYS /**/ = {"dienas", "dieną"},
WEEKS /**/ = {"savaites", "savaitę"},
MONTHS /**/ = {"mėnesius", "mėnesių", "mėnesį"},
YEARS /**/ = {"metus", "metų"};
private static final lt INSTANCE = new lt();
public static lt getInstance() {
return INSTANCE;
}
private lt() {
super(WORD_SEPARATOR, SECONDS, MINUTES, HOURS, DAYS, WEEKS, MONTHS, YEARS);
}
}

View file

@ -0,0 +1,29 @@
/**/// DO NOT MODIFY THIS FILE MANUALLY
/**/// This class was automatically generated by "GeneratePatternClasses.java",
/**/// modify the "unique_patterns.json" and re-generate instead.
package org.schabi.newpipe.extractor.timeago.patterns;
import org.schabi.newpipe.extractor.timeago.PatternsHolder;
public class lv extends PatternsHolder {
private static final String WORD_SEPARATOR = " ";
private static final String[]
SECONDS /**/ = {"sekundes", "sekundēm"},
MINUTES /**/ = {"minūtes", "minūtēm", "minūtes"},
HOURS /**/ = {"stundas", "stundām"},
DAYS /**/ = {"dienas", "dienām"},
WEEKS /**/ = {"nedēļas", "nedēļām"},
MONTHS /**/ = {"mēneša", "mēnešiem"},
YEARS /**/ = {"gada", "gadiem"};
private static final lv INSTANCE = new lv();
public static lv getInstance() {
return INSTANCE;
}
private lv() {
super(WORD_SEPARATOR, SECONDS, MINUTES, HOURS, DAYS, WEEKS, MONTHS, YEARS);
}
}

View file

@ -0,0 +1,29 @@
/**/// DO NOT MODIFY THIS FILE MANUALLY
/**/// This class was automatically generated by "GeneratePatternClasses.java",
/**/// modify the "unique_patterns.json" and re-generate instead.
package org.schabi.newpipe.extractor.timeago.patterns;
import org.schabi.newpipe.extractor.timeago.PatternsHolder;
public class mk extends PatternsHolder {
private static final String WORD_SEPARATOR = " ";
private static final String[]
SECONDS /**/ = {"секунда", "секунди"},
MINUTES /**/ = {"минута", "минути"},
HOURS /**/ = {"час", "часа"},
DAYS /**/ = {"ден", "дена"},
WEEKS /**/ = {"недела", "недели"},
MONTHS /**/ = {"месец", "месеци"},
YEARS /**/ = {"година", "години"};
private static final mk INSTANCE = new mk();
public static mk getInstance() {
return INSTANCE;
}
private mk() {
super(WORD_SEPARATOR, SECONDS, MINUTES, HOURS, DAYS, WEEKS, MONTHS, YEARS);
}
}

View file

@ -0,0 +1,29 @@
/**/// DO NOT MODIFY THIS FILE MANUALLY
/**/// This class was automatically generated by "GeneratePatternClasses.java",
/**/// modify the "unique_patterns.json" and re-generate instead.
package org.schabi.newpipe.extractor.timeago.patterns;
import org.schabi.newpipe.extractor.timeago.PatternsHolder;
public class ml extends PatternsHolder {
private static final String WORD_SEPARATOR = "";
private static final String[]
SECONDS /**/ = {"സെക്കന്റ്", "സെക്കൻഡ്"},
MINUTES /**/ = {"മിനിറ്റ്"},
HOURS /**/ = {"മണിക്കൂർ"},
DAYS /**/ = {"ദിവസം"},
WEEKS /**/ = {"ആഴ്ച", "ആഴ്‌ച"},
MONTHS /**/ = {"മാസം"},
YEARS /**/ = {"വർഷം"};
private static final ml INSTANCE = new ml();
public static ml getInstance() {
return INSTANCE;
}
private ml() {
super(WORD_SEPARATOR, SECONDS, MINUTES, HOURS, DAYS, WEEKS, MONTHS, YEARS);
}
}

View file

@ -0,0 +1,29 @@
/**/// DO NOT MODIFY THIS FILE MANUALLY
/**/// This class was automatically generated by "GeneratePatternClasses.java",
/**/// modify the "unique_patterns.json" and re-generate instead.
package org.schabi.newpipe.extractor.timeago.patterns;
import org.schabi.newpipe.extractor.timeago.PatternsHolder;
public class mn extends PatternsHolder {
private static final String WORD_SEPARATOR = " ";
private static final String[]
SECONDS /**/ = {"секундын"},
MINUTES /**/ = {"минутын"},
HOURS /**/ = {"цагийн"},
DAYS /**/ = {"өдрийн"},
WEEKS /**/ = {"долоо", "хоногийн"},
MONTHS /**/ = {"сарын"},
YEARS /**/ = {"жилийн"};
private static final mn INSTANCE = new mn();
public static mn getInstance() {
return INSTANCE;
}
private mn() {
super(WORD_SEPARATOR, SECONDS, MINUTES, HOURS, DAYS, WEEKS, MONTHS, YEARS);
}
}

View file

@ -0,0 +1,29 @@
/**/// DO NOT MODIFY THIS FILE MANUALLY
/**/// This class was automatically generated by "GeneratePatternClasses.java",
/**/// modify the "unique_patterns.json" and re-generate instead.
package org.schabi.newpipe.extractor.timeago.patterns;
import org.schabi.newpipe.extractor.timeago.PatternsHolder;
public class mr extends PatternsHolder {
private static final String WORD_SEPARATOR = "";
private static final String[]
SECONDS /**/ = {"सेकंदांपूर्वी", "सेकंदापूर्वी"},
MINUTES /**/ = {"मिनिटांपूर्वी", "मिनिटापूर्वी"},
HOURS /**/ = {"तासांपूर्वी", "तासापूर्वी"},
DAYS /**/ = {"दिवसांपूर्वी", "दिवसापूर्वी"},
WEEKS /**/ = {"आठवड्यांपूर्वी", "आठवड्यापूर्वी"},
MONTHS /**/ = {"महिन्यांपूर्वी", "महिन्यापूर्वी"},
YEARS /**/ = {"वर्षांपूर्वी", "वर्षापूर्वी"};
private static final mr INSTANCE = new mr();
public static mr getInstance() {
return INSTANCE;
}
private mr() {
super(WORD_SEPARATOR, SECONDS, MINUTES, HOURS, DAYS, WEEKS, MONTHS, YEARS);
}
}

View file

@ -0,0 +1,29 @@
/**/// DO NOT MODIFY THIS FILE MANUALLY
/**/// This class was automatically generated by "GeneratePatternClasses.java",
/**/// modify the "unique_patterns.json" and re-generate instead.
package org.schabi.newpipe.extractor.timeago.patterns;
import org.schabi.newpipe.extractor.timeago.PatternsHolder;
public class ms extends PatternsHolder {
private static final String WORD_SEPARATOR = " ";
private static final String[]
SECONDS /**/ = {"saat"},
MINUTES /**/ = {"minit"},
HOURS /**/ = {"jam"},
DAYS /**/ = {"hari"},
WEEKS /**/ = {"minggu"},
MONTHS /**/ = {"bulan"},
YEARS /**/ = {"tahun"};
private static final ms INSTANCE = new ms();
public static ms getInstance() {
return INSTANCE;
}
private ms() {
super(WORD_SEPARATOR, SECONDS, MINUTES, HOURS, DAYS, WEEKS, MONTHS, YEARS);
}
}

View file

@ -0,0 +1,29 @@
/**/// DO NOT MODIFY THIS FILE MANUALLY
/**/// This class was automatically generated by "GeneratePatternClasses.java",
/**/// modify the "unique_patterns.json" and re-generate instead.
package org.schabi.newpipe.extractor.timeago.patterns;
import org.schabi.newpipe.extractor.timeago.PatternsHolder;
public class my extends PatternsHolder {
private static final String WORD_SEPARATOR = " ";
private static final String[]
SECONDS /**/ = {"စက္ကန့်"},
MINUTES /**/ = {"မိနစ်"},
HOURS /**/ = {"နာရီ"},
DAYS /**/ = {"ရက်"},
WEEKS /**/ = {"ပတ်"},
MONTHS /**/ = {""},
YEARS /**/ = {"နှစ်"};
private static final my INSTANCE = new my();
public static my getInstance() {
return INSTANCE;
}
private my() {
super(WORD_SEPARATOR, SECONDS, MINUTES, HOURS, DAYS, WEEKS, MONTHS, YEARS);
}
}

View file

@ -0,0 +1,29 @@
/**/// DO NOT MODIFY THIS FILE MANUALLY
/**/// This class was automatically generated by "GeneratePatternClasses.java",
/**/// modify the "unique_patterns.json" and re-generate instead.
package org.schabi.newpipe.extractor.timeago.patterns;
import org.schabi.newpipe.extractor.timeago.PatternsHolder;
public class ne extends PatternsHolder {
private static final String WORD_SEPARATOR = " ";
private static final String[]
SECONDS /**/ = {"सेकेन्ड"},
MINUTES /**/ = {"मिनेट"},
HOURS /**/ = {"घन्टा"},
DAYS /**/ = {"दिन"},
WEEKS /**/ = {"हप्ता"},
MONTHS /**/ = {"महिना"},
YEARS /**/ = {"वर्ष"};
private static final ne INSTANCE = new ne();
public static ne getInstance() {
return INSTANCE;
}
private ne() {
super(WORD_SEPARATOR, SECONDS, MINUTES, HOURS, DAYS, WEEKS, MONTHS, YEARS);
}
}

View file

@ -0,0 +1,29 @@
/**/// DO NOT MODIFY THIS FILE MANUALLY
/**/// This class was automatically generated by "GeneratePatternClasses.java",
/**/// modify the "unique_patterns.json" and re-generate instead.
package org.schabi.newpipe.extractor.timeago.patterns;
import org.schabi.newpipe.extractor.timeago.PatternsHolder;
public class nl extends PatternsHolder {
private static final String WORD_SEPARATOR = " ";
private static final String[]
SECONDS /**/ = {"seconde", "seconden"},
MINUTES /**/ = {"minuten", "minuut"},
HOURS /**/ = {"uur"},
DAYS /**/ = {"dag", "dagen"},
WEEKS /**/ = {"week", "weken"},
MONTHS /**/ = {"maand", "maanden"},
YEARS /**/ = {"jaar"};
private static final nl INSTANCE = new nl();
public static nl getInstance() {
return INSTANCE;
}
private nl() {
super(WORD_SEPARATOR, SECONDS, MINUTES, HOURS, DAYS, WEEKS, MONTHS, YEARS);
}
}

View file

@ -0,0 +1,29 @@
/**/// DO NOT MODIFY THIS FILE MANUALLY
/**/// This class was automatically generated by "GeneratePatternClasses.java",
/**/// modify the "unique_patterns.json" and re-generate instead.
package org.schabi.newpipe.extractor.timeago.patterns;
import org.schabi.newpipe.extractor.timeago.PatternsHolder;
public class no extends PatternsHolder {
private static final String WORD_SEPARATOR = " ";
private static final String[]
SECONDS /**/ = {"sekund", "sekunder"},
MINUTES /**/ = {"minutt", "minutter"},
HOURS /**/ = {"time", "timer"},
DAYS /**/ = {"dag", "dager"},
WEEKS /**/ = {"uke", "uker"},
MONTHS /**/ = {"md."},
YEARS /**/ = {"år"};
private static final no INSTANCE = new no();
public static no getInstance() {
return INSTANCE;
}
private no() {
super(WORD_SEPARATOR, SECONDS, MINUTES, HOURS, DAYS, WEEKS, MONTHS, YEARS);
}
}

View file

@ -0,0 +1,29 @@
/**/// DO NOT MODIFY THIS FILE MANUALLY
/**/// This class was automatically generated by "GeneratePatternClasses.java",
/**/// modify the "unique_patterns.json" and re-generate instead.
package org.schabi.newpipe.extractor.timeago.patterns;
import org.schabi.newpipe.extractor.timeago.PatternsHolder;
public class pa extends PatternsHolder {
private static final String WORD_SEPARATOR = " ";
private static final String[]
SECONDS /**/ = {"ਸਕਿੰਟ"},
MINUTES /**/ = {"ਮਿੰਟ"},
HOURS /**/ = {"ਘੰਟਾ", "ਘੰਟੇ"},
DAYS /**/ = {"ਦਿਨ"},
WEEKS /**/ = {"ਹਫ਼ਤਾ", "ਹਫ਼ਤੇ"},
MONTHS /**/ = {"ਮਹੀਨਾ", "ਮਹੀਨੇ"},
YEARS /**/ = {"ਸਾਲ"};
private static final pa INSTANCE = new pa();
public static pa getInstance() {
return INSTANCE;
}
private pa() {
super(WORD_SEPARATOR, SECONDS, MINUTES, HOURS, DAYS, WEEKS, MONTHS, YEARS);
}
}

View file

@ -0,0 +1,29 @@
/**/// DO NOT MODIFY THIS FILE MANUALLY
/**/// This class was automatically generated by "GeneratePatternClasses.java",
/**/// modify the "unique_patterns.json" and re-generate instead.
package org.schabi.newpipe.extractor.timeago.patterns;
import org.schabi.newpipe.extractor.timeago.PatternsHolder;
public class pl extends PatternsHolder {
private static final String WORD_SEPARATOR = " ";
private static final String[]
SECONDS /**/ = {"sekund", "sekundy", "sekundę"},
MINUTES /**/ = {"minut", "minuty", "minutę"},
HOURS /**/ = {"godzin", "godziny", "godzinę"},
DAYS /**/ = {"dni", "dzień"},
WEEKS /**/ = {"tydzień", "tygodnie"},
MONTHS /**/ = {"miesiąc", "miesiące", "miesięcy"},
YEARS /**/ = {"lat", "lata", "rok"};
private static final pl INSTANCE = new pl();
public static pl getInstance() {
return INSTANCE;
}
private pl() {
super(WORD_SEPARATOR, SECONDS, MINUTES, HOURS, DAYS, WEEKS, MONTHS, YEARS);
}
}

View file

@ -0,0 +1,29 @@
/**/// DO NOT MODIFY THIS FILE MANUALLY
/**/// This class was automatically generated by "GeneratePatternClasses.java",
/**/// modify the "unique_patterns.json" and re-generate instead.
package org.schabi.newpipe.extractor.timeago.patterns;
import org.schabi.newpipe.extractor.timeago.PatternsHolder;
public class pt extends PatternsHolder {
private static final String WORD_SEPARATOR = " ";
private static final String[]
SECONDS /**/ = {"segundo", "segundos"},
MINUTES /**/ = {"minuto", "minutos"},
HOURS /**/ = {"hora", "horas"},
DAYS /**/ = {"dia", "dias"},
WEEKS /**/ = {"semana", "semanas"},
MONTHS /**/ = {"meses", "mês"},
YEARS /**/ = {"ano", "anos"};
private static final pt INSTANCE = new pt();
public static pt getInstance() {
return INSTANCE;
}
private pt() {
super(WORD_SEPARATOR, SECONDS, MINUTES, HOURS, DAYS, WEEKS, MONTHS, YEARS);
}
}

View file

@ -0,0 +1,29 @@
/**/// DO NOT MODIFY THIS FILE MANUALLY
/**/// This class was automatically generated by "GeneratePatternClasses.java",
/**/// modify the "unique_patterns.json" and re-generate instead.
package org.schabi.newpipe.extractor.timeago.patterns;
import org.schabi.newpipe.extractor.timeago.PatternsHolder;
public class pt_PT extends PatternsHolder {
private static final String WORD_SEPARATOR = " ";
private static final String[]
SECONDS /**/ = {"segundo", "segundos"},
MINUTES /**/ = {"minuto", "minutos"},
HOURS /**/ = {"hora", "horas"},
DAYS /**/ = {"dia", "dias"},
WEEKS /**/ = {"semana", "semanas"},
MONTHS /**/ = {"meses", "mês"},
YEARS /**/ = {"ano", "anos"};
private static final pt_PT INSTANCE = new pt_PT();
public static pt_PT getInstance() {
return INSTANCE;
}
private pt_PT() {
super(WORD_SEPARATOR, SECONDS, MINUTES, HOURS, DAYS, WEEKS, MONTHS, YEARS);
}
}

View file

@ -0,0 +1,29 @@
/**/// DO NOT MODIFY THIS FILE MANUALLY
/**/// This class was automatically generated by "GeneratePatternClasses.java",
/**/// modify the "unique_patterns.json" and re-generate instead.
package org.schabi.newpipe.extractor.timeago.patterns;
import org.schabi.newpipe.extractor.timeago.PatternsHolder;
public class ro extends PatternsHolder {
private static final String WORD_SEPARATOR = " ";
private static final String[]
SECONDS /**/ = {"secunde", "secundă"},
MINUTES /**/ = {"minut", "minute"},
HOURS /**/ = {"ore", "oră"},
DAYS /**/ = {"zi", "zile"},
WEEKS /**/ = {"săptămâni", "săptămână"},
MONTHS /**/ = {"luni", "lună"},
YEARS /**/ = {"an", "ani"};
private static final ro INSTANCE = new ro();
public static ro getInstance() {
return INSTANCE;
}
private ro() {
super(WORD_SEPARATOR, SECONDS, MINUTES, HOURS, DAYS, WEEKS, MONTHS, YEARS);
}
}

View file

@ -0,0 +1,29 @@
/**/// DO NOT MODIFY THIS FILE MANUALLY
/**/// This class was automatically generated by "GeneratePatternClasses.java",
/**/// modify the "unique_patterns.json" and re-generate instead.
package org.schabi.newpipe.extractor.timeago.patterns;
import org.schabi.newpipe.extractor.timeago.PatternsHolder;
public class ru extends PatternsHolder {
private static final String WORD_SEPARATOR = " ";
private static final String[]
SECONDS /**/ = {"секунд", "секунду", "секунды", "только что"},
MINUTES /**/ = {"минут", "минуту", "минуты"},
HOURS /**/ = {"час", "часа", "часов"},
DAYS /**/ = {"день", "дней", "дня"},
WEEKS /**/ = {"Неделю", "недели"},
MONTHS /**/ = {"месяц", "месяца", "месяцев"},
YEARS /**/ = {"Год", "года", "лет"};
private static final ru INSTANCE = new ru();
public static ru getInstance() {
return INSTANCE;
}
private ru() {
super(WORD_SEPARATOR, SECONDS, MINUTES, HOURS, DAYS, WEEKS, MONTHS, YEARS);
}
}

View file

@ -0,0 +1,29 @@
/**/// DO NOT MODIFY THIS FILE MANUALLY
/**/// This class was automatically generated by "GeneratePatternClasses.java",
/**/// modify the "unique_patterns.json" and re-generate instead.
package org.schabi.newpipe.extractor.timeago.patterns;
import org.schabi.newpipe.extractor.timeago.PatternsHolder;
public class si extends PatternsHolder {
private static final String WORD_SEPARATOR = " ";
private static final String[]
SECONDS /**/ = {"තත්පර"},
MINUTES /**/ = {"මිනිත්තු"},
HOURS /**/ = {"පැය"},
DAYS /**/ = {"දින"},
WEEKS /**/ = {"සති"},
MONTHS /**/ = {"මාස"},
YEARS /**/ = {"වසර"};
private static final si INSTANCE = new si();
public static si getInstance() {
return INSTANCE;
}
private si() {
super(WORD_SEPARATOR, SECONDS, MINUTES, HOURS, DAYS, WEEKS, MONTHS, YEARS);
}
}

View file

@ -0,0 +1,29 @@
/**/// DO NOT MODIFY THIS FILE MANUALLY
/**/// This class was automatically generated by "GeneratePatternClasses.java",
/**/// modify the "unique_patterns.json" and re-generate instead.
package org.schabi.newpipe.extractor.timeago.patterns;
import org.schabi.newpipe.extractor.timeago.PatternsHolder;
public class sk extends PatternsHolder {
private static final String WORD_SEPARATOR = " ";
private static final String[]
SECONDS /**/ = {"sekundami", "sekundou"},
MINUTES /**/ = {"minútami", "minútou"},
HOURS /**/ = {"hodinami", "hodinou"},
DAYS /**/ = {"dňami", "dňom"},
WEEKS /**/ = {"týždňami", "týždňom"},
MONTHS /**/ = {"mesiacmi", "mesiacom"},
YEARS /**/ = {"rokmi", "rokom"};
private static final sk INSTANCE = new sk();
public static sk getInstance() {
return INSTANCE;
}
private sk() {
super(WORD_SEPARATOR, SECONDS, MINUTES, HOURS, DAYS, WEEKS, MONTHS, YEARS);
}
}

View file

@ -0,0 +1,29 @@
/**/// DO NOT MODIFY THIS FILE MANUALLY
/**/// This class was automatically generated by "GeneratePatternClasses.java",
/**/// modify the "unique_patterns.json" and re-generate instead.
package org.schabi.newpipe.extractor.timeago.patterns;
import org.schabi.newpipe.extractor.timeago.PatternsHolder;
public class sl extends PatternsHolder {
private static final String WORD_SEPARATOR = " ";
private static final String[]
SECONDS /**/ = {"sekundama", "sekundami", "sekundo"},
MINUTES /**/ = {"minutama", "minutami", "minuto"},
HOURS /**/ = {"urama", "urami", "uro"},
DAYS /**/ = {"dnem", "dnevi", "dnevoma"},
WEEKS /**/ = {"tedni", "tednom", "tednoma"},
MONTHS /**/ = {"mesecem", "mesecema", "meseci"},
YEARS /**/ = {"leti", "letom", "letoma"};
private static final sl INSTANCE = new sl();
public static sl getInstance() {
return INSTANCE;
}
private sl() {
super(WORD_SEPARATOR, SECONDS, MINUTES, HOURS, DAYS, WEEKS, MONTHS, YEARS);
}
}

View file

@ -0,0 +1,29 @@
/**/// DO NOT MODIFY THIS FILE MANUALLY
/**/// This class was automatically generated by "GeneratePatternClasses.java",
/**/// modify the "unique_patterns.json" and re-generate instead.
package org.schabi.newpipe.extractor.timeago.patterns;
import org.schabi.newpipe.extractor.timeago.PatternsHolder;
public class sq extends PatternsHolder {
private static final String WORD_SEPARATOR = " ";
private static final String[]
SECONDS /**/ = {"sekonda", "sekondë"},
MINUTES /**/ = {"minuta", "minutë"},
HOURS /**/ = {"orë"},
DAYS /**/ = {"ditë"},
WEEKS /**/ = {"javë"},
MONTHS /**/ = {"muaj"},
YEARS /**/ = {"vit", "vjet"};
private static final sq INSTANCE = new sq();
public static sq getInstance() {
return INSTANCE;
}
private sq() {
super(WORD_SEPARATOR, SECONDS, MINUTES, HOURS, DAYS, WEEKS, MONTHS, YEARS);
}
}

View file

@ -0,0 +1,29 @@
/**/// DO NOT MODIFY THIS FILE MANUALLY
/**/// This class was automatically generated by "GeneratePatternClasses.java",
/**/// modify the "unique_patterns.json" and re-generate instead.
package org.schabi.newpipe.extractor.timeago.patterns;
import org.schabi.newpipe.extractor.timeago.PatternsHolder;
public class sr extends PatternsHolder {
private static final String WORD_SEPARATOR = " ";
private static final String[]
SECONDS /**/ = {"секунде", "секунди"},
MINUTES /**/ = {"минута"},
HOURS /**/ = {"сат", "сата", "сати"},
DAYS /**/ = {"Пре 1 дан", "Пре 2 дана", "Пре 3 дана", "Пре 4 дана", "Пре 5 дана", "Пре 6 дана"},
WEEKS /**/ = {"недеље", "недељу"},
MONTHS /**/ = {"месец", "месеца", "месеци"},
YEARS /**/ = {"година", "године", "годину"};
private static final sr INSTANCE = new sr();
public static sr getInstance() {
return INSTANCE;
}
private sr() {
super(WORD_SEPARATOR, SECONDS, MINUTES, HOURS, DAYS, WEEKS, MONTHS, YEARS);
}
}

View file

@ -0,0 +1,29 @@
/**/// DO NOT MODIFY THIS FILE MANUALLY
/**/// This class was automatically generated by "GeneratePatternClasses.java",
/**/// modify the "unique_patterns.json" and re-generate instead.
package org.schabi.newpipe.extractor.timeago.patterns;
import org.schabi.newpipe.extractor.timeago.PatternsHolder;
public class sr_Latn extends PatternsHolder {
private static final String WORD_SEPARATOR = " ";
private static final String[]
SECONDS /**/ = {"sekunde", "sekundi"},
MINUTES /**/ = {"minuta"},
HOURS /**/ = {"sat", "sati", "sata"},
DAYS /**/ = {"Pre 1 dan", "Pre 2 dana", "Pre 3 dana", "Pre 4 dana", "Pre 5 dana", "Pre 6 dana"},
WEEKS /**/ = {"nedelja", "nedelje", "nedelju"},
MONTHS /**/ = {"mesec", "meseci", "meseca"},
YEARS /**/ = {"godine", "godina", "godinu"};
private static final sr_Latn INSTANCE = new sr_Latn();
public static sr_Latn getInstance() {
return INSTANCE;
}
private sr_Latn() {
super(WORD_SEPARATOR, SECONDS, MINUTES, HOURS, DAYS, WEEKS, MONTHS, YEARS);
}
}

View file

@ -0,0 +1,29 @@
/**/// DO NOT MODIFY THIS FILE MANUALLY
/**/// This class was automatically generated by "GeneratePatternClasses.java",
/**/// modify the "unique_patterns.json" and re-generate instead.
package org.schabi.newpipe.extractor.timeago.patterns;
import org.schabi.newpipe.extractor.timeago.PatternsHolder;
public class sv extends PatternsHolder {
private static final String WORD_SEPARATOR = " ";
private static final String[]
SECONDS /**/ = {"sekund", "sekunder"},
MINUTES /**/ = {"minut", "minuter"},
HOURS /**/ = {"timmar", "timme"},
DAYS /**/ = {"dag", "dagar"},
WEEKS /**/ = {"vecka", "veckor"},
MONTHS /**/ = {"månad", "månader"},
YEARS /**/ = {"år"};
private static final sv INSTANCE = new sv();
public static sv getInstance() {
return INSTANCE;
}
private sv() {
super(WORD_SEPARATOR, SECONDS, MINUTES, HOURS, DAYS, WEEKS, MONTHS, YEARS);
}
}

View file

@ -0,0 +1,29 @@
/**/// DO NOT MODIFY THIS FILE MANUALLY
/**/// This class was automatically generated by "GeneratePatternClasses.java",
/**/// modify the "unique_patterns.json" and re-generate instead.
package org.schabi.newpipe.extractor.timeago.patterns;
import org.schabi.newpipe.extractor.timeago.PatternsHolder;
public class sw extends PatternsHolder {
private static final String WORD_SEPARATOR = " ";
private static final String[]
SECONDS /**/ = {"sekunde"},
MINUTES /**/ = {"dakika"},
HOURS /**/ = {"saa"},
DAYS /**/ = {"siku"},
WEEKS /**/ = {"wiki"},
MONTHS /**/ = {"Mwezi", "miezi"},
YEARS /**/ = {"Miaka", "Mwaka"};
private static final sw INSTANCE = new sw();
public static sw getInstance() {
return INSTANCE;
}
private sw() {
super(WORD_SEPARATOR, SECONDS, MINUTES, HOURS, DAYS, WEEKS, MONTHS, YEARS);
}
}

View file

@ -0,0 +1,29 @@
/**/// DO NOT MODIFY THIS FILE MANUALLY
/**/// This class was automatically generated by "GeneratePatternClasses.java",
/**/// modify the "unique_patterns.json" and re-generate instead.
package org.schabi.newpipe.extractor.timeago.patterns;
import org.schabi.newpipe.extractor.timeago.PatternsHolder;
public class ta extends PatternsHolder {
private static final String WORD_SEPARATOR = " ";
private static final String[]
SECONDS /**/ = {"வினாடி", "வினாடிகளுக்கு"},
MINUTES /**/ = {"நிமிடங்கள்", "நிமிடம்"},
HOURS /**/ = {"மணிநேரத்திற்கு"},
DAYS /**/ = {"நாட்களுக்கு", "நாளுக்கு"},
WEEKS /**/ = {"வாரங்களுக்கு", "வாரம்"},
MONTHS /**/ = {"மாதங்கள்", "மாதம்"},
YEARS /**/ = {"ஆண்டு", "ஆண்டுகளுக்கு"};
private static final ta INSTANCE = new ta();
public static ta getInstance() {
return INSTANCE;
}
private ta() {
super(WORD_SEPARATOR, SECONDS, MINUTES, HOURS, DAYS, WEEKS, MONTHS, YEARS);
}
}

View file

@ -0,0 +1,29 @@
/**/// DO NOT MODIFY THIS FILE MANUALLY
/**/// This class was automatically generated by "GeneratePatternClasses.java",
/**/// modify the "unique_patterns.json" and re-generate instead.
package org.schabi.newpipe.extractor.timeago.patterns;
import org.schabi.newpipe.extractor.timeago.PatternsHolder;
public class te extends PatternsHolder {
private static final String WORD_SEPARATOR = " ";
private static final String[]
SECONDS /**/ = {"సెకను", "సెకన్ల"},
MINUTES /**/ = {"నిమిషం", "నిమిషాల"},
HOURS /**/ = {"గంట", "గంటల"},
DAYS /**/ = {"రోజు", "రోజుల"},
WEEKS /**/ = {"వారం", "వారాల"},
MONTHS /**/ = {"నెల", "నెలల"},
YEARS /**/ = {"సంవత్సరం", "సంవత్సరాల"};
private static final te INSTANCE = new te();
public static te getInstance() {
return INSTANCE;
}
private te() {
super(WORD_SEPARATOR, SECONDS, MINUTES, HOURS, DAYS, WEEKS, MONTHS, YEARS);
}
}

View file

@ -0,0 +1,29 @@
/**/// DO NOT MODIFY THIS FILE MANUALLY
/**/// This class was automatically generated by "GeneratePatternClasses.java",
/**/// modify the "unique_patterns.json" and re-generate instead.
package org.schabi.newpipe.extractor.timeago.patterns;
import org.schabi.newpipe.extractor.timeago.PatternsHolder;
public class th extends PatternsHolder {
private static final String WORD_SEPARATOR = "";
private static final String[]
SECONDS /**/ = {"วินาทีที่ผ่านมา"},
MINUTES /**/ = {"นาทีที่ผ่านมา"},
HOURS /**/ = {"ชั่วโมงที่ผ่านมา"},
DAYS /**/ = {"วันที่ผ่านมา"},
WEEKS /**/ = {"สัปดาห์ที่ผ่านมา"},
MONTHS /**/ = {"เดือนที่ผ่านมา"},
YEARS /**/ = {"ปีที่ผ่านมา"};
private static final th INSTANCE = new th();
public static th getInstance() {
return INSTANCE;
}
private th() {
super(WORD_SEPARATOR, SECONDS, MINUTES, HOURS, DAYS, WEEKS, MONTHS, YEARS);
}
}

View file

@ -0,0 +1,29 @@
/**/// DO NOT MODIFY THIS FILE MANUALLY
/**/// This class was automatically generated by "GeneratePatternClasses.java",
/**/// modify the "unique_patterns.json" and re-generate instead.
package org.schabi.newpipe.extractor.timeago.patterns;
import org.schabi.newpipe.extractor.timeago.PatternsHolder;
public class tr extends PatternsHolder {
private static final String WORD_SEPARATOR = " ";
private static final String[]
SECONDS /**/ = {"saniye"},
MINUTES /**/ = {"dakika"},
HOURS /**/ = {"saat"},
DAYS /**/ = {"gün"},
WEEKS /**/ = {"hafta"},
MONTHS /**/ = {"ay"},
YEARS /**/ = {"yıl"};
private static final tr INSTANCE = new tr();
public static tr getInstance() {
return INSTANCE;
}
private tr() {
super(WORD_SEPARATOR, SECONDS, MINUTES, HOURS, DAYS, WEEKS, MONTHS, YEARS);
}
}

View file

@ -0,0 +1,29 @@
/**/// DO NOT MODIFY THIS FILE MANUALLY
/**/// This class was automatically generated by "GeneratePatternClasses.java",
/**/// modify the "unique_patterns.json" and re-generate instead.
package org.schabi.newpipe.extractor.timeago.patterns;
import org.schabi.newpipe.extractor.timeago.PatternsHolder;
public class uk extends PatternsHolder {
private static final String WORD_SEPARATOR = " ";
private static final String[]
SECONDS /**/ = {"секунд", "секунди", "секунду"},
MINUTES /**/ = {"хвилин", "хвилини", "хвилину"},
HOURS /**/ = {"годин", "години", "годину"},
DAYS /**/ = {"день", "дні", "днів"},
WEEKS /**/ = {"тиждень", "тижні"},
MONTHS /**/ = {"місяць", "місяці", "місяців"},
YEARS /**/ = {"роки", "років", "рік"};
private static final uk INSTANCE = new uk();
public static uk getInstance() {
return INSTANCE;
}
private uk() {
super(WORD_SEPARATOR, SECONDS, MINUTES, HOURS, DAYS, WEEKS, MONTHS, YEARS);
}
}

View file

@ -0,0 +1,29 @@
/**/// DO NOT MODIFY THIS FILE MANUALLY
/**/// This class was automatically generated by "GeneratePatternClasses.java",
/**/// modify the "unique_patterns.json" and re-generate instead.
package org.schabi.newpipe.extractor.timeago.patterns;
import org.schabi.newpipe.extractor.timeago.PatternsHolder;
public class ur extends PatternsHolder {
private static final String WORD_SEPARATOR = " ";
private static final String[]
SECONDS /**/ = {"سیکنڈ", "سیکنڈز"},
MINUTES /**/ = {"منٹ", "منٹس"},
HOURS /**/ = {"گھنٹہ", "گھنٹے"},
DAYS /**/ = {"دن"},
WEEKS /**/ = {"ہفتہ", "ہفتے"},
MONTHS /**/ = {"ماہ"},
YEARS /**/ = {"سال"};
private static final ur INSTANCE = new ur();
public static ur getInstance() {
return INSTANCE;
}
private ur() {
super(WORD_SEPARATOR, SECONDS, MINUTES, HOURS, DAYS, WEEKS, MONTHS, YEARS);
}
}

View file

@ -0,0 +1,29 @@
/**/// DO NOT MODIFY THIS FILE MANUALLY
/**/// This class was automatically generated by "GeneratePatternClasses.java",
/**/// modify the "unique_patterns.json" and re-generate instead.
package org.schabi.newpipe.extractor.timeago.patterns;
import org.schabi.newpipe.extractor.timeago.PatternsHolder;
public class uz extends PatternsHolder {
private static final String WORD_SEPARATOR = " ";
private static final String[]
SECONDS /**/ = {"soniya"},
MINUTES /**/ = {"daqiqa"},
HOURS /**/ = {"soat"},
DAYS /**/ = {"kun"},
WEEKS /**/ = {"hafta"},
MONTHS /**/ = {"oy"},
YEARS /**/ = {"yil"};
private static final uz INSTANCE = new uz();
public static uz getInstance() {
return INSTANCE;
}
private uz() {
super(WORD_SEPARATOR, SECONDS, MINUTES, HOURS, DAYS, WEEKS, MONTHS, YEARS);
}
}

View file

@ -0,0 +1,29 @@
/**/// DO NOT MODIFY THIS FILE MANUALLY
/**/// This class was automatically generated by "GeneratePatternClasses.java",
/**/// modify the "unique_patterns.json" and re-generate instead.
package org.schabi.newpipe.extractor.timeago.patterns;
import org.schabi.newpipe.extractor.timeago.PatternsHolder;
public class vi extends PatternsHolder {
private static final String WORD_SEPARATOR = " ";
private static final String[]
SECONDS /**/ = {"giây"},
MINUTES /**/ = {"phút"},
HOURS /**/ = {"giờ", "tiếng"},
DAYS /**/ = {"ngày"},
WEEKS /**/ = {"tuần"},
MONTHS /**/ = {"tháng"},
YEARS /**/ = {"năm"};
private static final vi INSTANCE = new vi();
public static vi getInstance() {
return INSTANCE;
}
private vi() {
super(WORD_SEPARATOR, SECONDS, MINUTES, HOURS, DAYS, WEEKS, MONTHS, YEARS);
}
}

View file

@ -0,0 +1,29 @@
/**/// DO NOT MODIFY THIS FILE MANUALLY
/**/// This class was automatically generated by "GeneratePatternClasses.java",
/**/// modify the "unique_patterns.json" and re-generate instead.
package org.schabi.newpipe.extractor.timeago.patterns;
import org.schabi.newpipe.extractor.timeago.PatternsHolder;
public class zh_CN extends PatternsHolder {
private static final String WORD_SEPARATOR = "";
private static final String[]
SECONDS /**/ = {"秒前"},
MINUTES /**/ = {"分钟前"},
HOURS /**/ = {"小时前"},
DAYS /**/ = {"天前"},
WEEKS /**/ = {"周前"},
MONTHS /**/ = {"个月前"},
YEARS /**/ = {"年前"};
private static final zh_CN INSTANCE = new zh_CN();
public static zh_CN getInstance() {
return INSTANCE;
}
private zh_CN() {
super(WORD_SEPARATOR, SECONDS, MINUTES, HOURS, DAYS, WEEKS, MONTHS, YEARS);
}
}

View file

@ -0,0 +1,29 @@
/**/// DO NOT MODIFY THIS FILE MANUALLY
/**/// This class was automatically generated by "GeneratePatternClasses.java",
/**/// modify the "unique_patterns.json" and re-generate instead.
package org.schabi.newpipe.extractor.timeago.patterns;
import org.schabi.newpipe.extractor.timeago.PatternsHolder;
public class zh_HK extends PatternsHolder {
private static final String WORD_SEPARATOR = "";
private static final String[]
SECONDS /**/ = {"秒前"},
MINUTES /**/ = {"分鐘前"},
HOURS /**/ = {"小時前"},
DAYS /**/ = {"天前"},
WEEKS /**/ = {"週前"},
MONTHS /**/ = {"個月前"},
YEARS /**/ = {"年前"};
private static final zh_HK INSTANCE = new zh_HK();
public static zh_HK getInstance() {
return INSTANCE;
}
private zh_HK() {
super(WORD_SEPARATOR, SECONDS, MINUTES, HOURS, DAYS, WEEKS, MONTHS, YEARS);
}
}

View file

@ -0,0 +1,29 @@
/**/// DO NOT MODIFY THIS FILE MANUALLY
/**/// This class was automatically generated by "GeneratePatternClasses.java",
/**/// modify the "unique_patterns.json" and re-generate instead.
package org.schabi.newpipe.extractor.timeago.patterns;
import org.schabi.newpipe.extractor.timeago.PatternsHolder;
public class zh_TW extends PatternsHolder {
private static final String WORD_SEPARATOR = "";
private static final String[]
SECONDS /**/ = {"秒前"},
MINUTES /**/ = {"分鐘前"},
HOURS /**/ = {"小時前"},
DAYS /**/ = {"天前"},
WEEKS /**/ = {"週前"},
MONTHS /**/ = {"個月前"},
YEARS /**/ = {"年前"};
private static final zh_TW INSTANCE = new zh_TW();
public static zh_TW getInstance() {
return INSTANCE;
}
private zh_TW() {
super(WORD_SEPARATOR, SECONDS, MINUTES, HOURS, DAYS, WEEKS, MONTHS, YEARS);
}
}

View file

@ -0,0 +1,29 @@
/**/// DO NOT MODIFY THIS FILE MANUALLY
/**/// This class was automatically generated by "GeneratePatternClasses.java",
/**/// modify the "unique_patterns.json" and re-generate instead.
package org.schabi.newpipe.extractor.timeago.patterns;
import org.schabi.newpipe.extractor.timeago.PatternsHolder;
public class zu extends PatternsHolder {
private static final String WORD_SEPARATOR = " ";
private static final String[]
SECONDS /**/ = {"amasekhondi", "isekhondi"},
MINUTES /**/ = {"amaminithi", "iminithi"},
HOURS /**/ = {"amahora", "ihora"},
DAYS /**/ = {"izinsuku", "usuku"},
WEEKS /**/ = {"amaviki", "iviki"},
MONTHS /**/ = {"inyanga", "izinyanga"},
YEARS /**/ = {"iminyaka", "unyaka"};
private static final zu INSTANCE = new zu();
public static zu getInstance() {
return INSTANCE;
}
private zu() {
super(WORD_SEPARATOR, SECONDS, MINUTES, HOURS, DAYS, WEEKS, MONTHS, YEARS);
}
}

View file

@ -1,26 +0,0 @@
seconds=\
sekonde»»\
sekondes
minutes=\
minute»»\
minuut
hours=\
ure»»\
uur
days=\
dae»»\
dag
weeks=\
week»»\
weke
months=\
maand»»\
maande
years=\
jaar

View file

@ -1,27 +0,0 @@
seconds=\
»»\
ሴኮንድ
minutes=\
»»\
ደቂቃዎች
hours=\
»»\
ሰዓቶች
days=\
»»\
ቀኖች
weeks=\
»»\
ሳምንት
months=\
»»\
ወር
years=\
»»\
ዓመት

View file

@ -1,35 +0,0 @@
seconds=\
ثانية»»\
ثانيتين»»\
ثوانٍ
minutes=\
دقائق»»\
دقيقة»»\
دقيقتين
hours=\
ساعات»»\
ساعة»»\
ساعتين
days=\
أيام»»\
يوم»»\
يومين
weeks=\
أسابيع»»\
أسبوع»»\
أسبوعين
months=\
أشهر»»\
شهر»»\
شهرين»»\
شهرًا
years=\
سنة»»\
سنتين»»\
سنوات

View file

@ -1,20 +0,0 @@
seconds=\
saniyə
minutes=\
dəqiqə
hours=\
saat
days=\
gün
weeks=\
həftə
months=\
ay
years=\
il

View file

@ -1,28 +0,0 @@
seconds=\
секунд»»\
секунду»»\
секунды
minutes=\
хвіліну»»\
хвіліны
hours=\
гадзіну»»\
гадзіны
days=\
дзень»»\
дня
weeks=\
тыдзень»»\
тыдня
months=\
месяц»»\
месяца
years=\
год»»\
года

View file

@ -1,27 +0,0 @@
seconds=\
секунда»»\
секунди
minutes=\
минута»»\
минути
hours=\
час»»\
часа
days=\
ден»»\
дни
weeks=\
седмица»»\
седмици
months=\
месец»»\
месеца
years=\
година»»\
години

View file

@ -1,20 +0,0 @@
seconds=\
minutes=\
িি
hours=\
days=\
ি
weeks=\
months=\
years=\
বছর

View file

@ -1,27 +0,0 @@
seconds=\
sekundi»»\
sekundu
minutes=\
minuta»»\
minutu
hours=\
h»»\
sat
days=\
dan»»\
dana
weeks=\
sedm.
months=\
mj.»»\
mjesec
years=\
godine»»\
godina»»\
godinu

View file

@ -1,27 +0,0 @@
seconds=\
segon»»\
segons
minutes=\
minut»»\
minuts
hours=\
hora»»\
hores
days=\
dia»»\
dies
weeks=\
setmana»»\
setmanes
months=\
mes»»\
mesos
years=\
any»»\
anys

View file

@ -1,27 +0,0 @@
seconds=\
sekundami»»\
sekundou
minutes=\
minutami»»\
minutou
hours=\
hodinami»»\
hodinou
days=\
dny»»\
včera
weeks=\
týdnem»»\
týdny
months=\
měsícem»»\
měsíci
years=\
rokem»»\
roky

View file

@ -1,26 +0,0 @@
seconds=\
sekund»»\
sekunder
minutes=\
minut»»\
minutter
hours=\
time»»\
timer
days=\
dag»»\
dage
weeks=\
uge»»\
uger
months=\
måned»»\
måneder
years=\
år

Some files were not shown because too many files have changed in this diff Show more