diff --git a/README.md b/README.md index beb155d9..b4bf06a3 100644 --- a/README.md +++ b/README.md @@ -223,8 +223,13 @@ TAF taf = service.retrieveFromAirport(icao); ### Internationalization -English and French locales are supported by the library. The library uses the user's locale. The default locale is english. +The following locales are also available in the project but may not be fully translated: +- French +- German +- Polish +- Italian +- simplified chinese #### Change the locale and contributing diff --git a/metarParser-commons/src/main/resources/internationalization/messages.properties b/metarParser-commons/src/main/resources/internationalization/messages.properties index 657b5ef5..2a652f86 100644 --- a/metarParser-commons/src/main/resources/internationalization/messages.properties +++ b/metarParser-commons/src/main/resources/internationalization/messages.properties @@ -100,6 +100,7 @@ Phenomenon.TS=thunderstorm Remark.AO1=automated stations without a precipitation discriminator Remark.AO2=automated station with a precipitation discriminator +Remark.ALQDS=all quadrants Remark.Barometer.0=Increase, then decrease Remark.Barometer.1=Increase, then steady, or increase then Increase more slowly Remark.Barometer.2=steady or unsteady increase @@ -112,6 +113,7 @@ Remark.Barometer.8=Steady or increase, then decrease; or decrease then decrease Remark.BASED=based Remark.Ceiling.Height=ceiling varying between {0} and {1} feet Remark.Ceiling.Second.Location=ceiling of {0} feet mesured by a second sensor located at {1} +Remark.DSNT=distant Remark.FCST=forecast Remark.FUNNELCLOUD=funnel cloud Remark.Hail=largest hailstones with a diameter of {0} inches @@ -124,17 +126,18 @@ Remark.Hourly.Temperature.Dew.Point=hourly temperature of {0}°C and dew point o Remark.Ice.Accretion.Amount={0}/100 of an inch of ice accretion in the past {1} hour(s) Remark.HVY=heavy Remark.LGT=light +Remark.LTG=lightning Remark.MOD=moderate Remark.Obscuration={0} layer at {1} feet composed of {2} Remark.ON=on Remark.NXT=next -Remark.PeakWind=peak wind of {1} knots from {0} degrees at {2}:{3} +Remark.PeakWind=peak wind of {1} knots from {0} degrees at {2}\:{3} Remark.Precipitation.Amount.Hourly={0}/100 of an inch of precipitation fell in the last hour Remark.Precipitation.Amount.3.6={1} inches of precipitation fell in the last {0} hours Remark.Precipitation.Amount.24={0} inches of precipitation fell in the last 24 hours -Remark.Precipitation.Beg={0} {1} beginning at {2}:{3} -Remark.Precipitation.Beg.End={0} {1} beginning at {2}:{3} ending at {4}:{5} -Remark.Precipitation.End={0} {1} ending at {2}:{3} +Remark.Precipitation.Beg={0} {1} beginning at {2}\:{3} +Remark.Precipitation.Beg.End={0} {1} beginning at {2}\:{3} ending at {4}\:{5} +Remark.Precipitation.End={0} {1} ending at {2}\:{3} Remark.Pressure.Tendency=of {0} hectopascals in the past 3 hours Remark.PRESFR=pressure falling rapidly Remark.PRESRR=pressure rising rapidly @@ -149,9 +152,9 @@ Remark.Sunshine.Duration={0} minutes of sunshine Remark.Surface.Visibility=surface visibility of {0} statute miles Remark.Thunderstorm.Location=thunderstorm {0} of the station Remark.Thunderstorm.Location.Moving=thunderstorm {0} of the station moving towards {1} -Remark.Tornadic.Activity.Beginning={0} beginning at {1}:{2} {3} SM {4} of the station -Remark.Tornadic.Activity.BegEnd={0} beginning at {1}:{2} ending at {3}:{4} {5} SM {6} of the station -Remark.Tornadic.Activity.Ending={0} ending at {1}:{2} {3} SM {4} of the station +Remark.Tornadic.Activity.Beginning={0} beginning at {1}\:{2} {3} SM {4} of the station +Remark.Tornadic.Activity.BegEnd={0} beginning at {1}\:{2} ending at {3}\:{4} {5} SM {6} of the station +Remark.Tornadic.Activity.Ending={0} ending at {1}\:{2} {3} SM {4} of the station Remark.TORNADO=tornado Remark.Tower.Visibility=control tower visibility of {0} statute miles Remark.Variable.Prevailing.Visibility=variable prevailing visibility between {0} and {1} SM @@ -161,8 +164,8 @@ Remark.VIRGA=virga Remark.Virga.Direction=virga {0} from the station Remark.WATERSPOUT=waterspout Remark.Water.Equivalent.Snow.Ground=water equivalent of {0} inches of snow -Remark.WindShift=wind shift at {0}:{1} -Remark.WindShift.FROPA=wind shift accompanied by frontal passage at {0}:{1} +Remark.WindShift=wind shift at {0}\:{1} +Remark.WindShift.FROPA=wind shift accompanied by frontal passage at {0}\:{1} MetarFacade.InvalidIcao=Icao code is invalid. diff --git a/metarParser-commons/src/main/resources/internationalization/messages_ pl_PL.properties b/metarParser-commons/src/main/resources/internationalization/messages_ pl_PL.properties index 0c7dd5ee..7917346c 100644 --- a/metarParser-commons/src/main/resources/internationalization/messages_ pl_PL.properties +++ b/metarParser-commons/src/main/resources/internationalization/messages_ pl_PL.properties @@ -1,85 +1,89 @@ -# There is no other translation in wikipedia and/or known resources to translate cloud quantity without numerals. I can translate it to common levels, but I think that this is not common way of naming those levels in aviation domain. -CloudQuantity.BKN = Od 5/8 do 7/8 -CloudQuantity.FEW = Od 1/8 do 2/8 -CloudQuantity.NSC = Nieznaczne zachmurzenie. -CloudQuantity.OVC = 8/8 -CloudQuantity.SCT = Od 3/8 do 4/8 -CloudQuantity.SKC = Czyste niebo -# Fuzzy -CloudType.AC = Średnie kłębiaste -# Fuzzy -CloudType.AS = Średnia warstwowa -# Fuzzy -CloudType.CB = Kłębiasta deszczowa -# Fuzzy -CloudType.CC = Piętra wysokiego rodzaj kłębiasto-pierzaste -# Fuzzy -CloudType.CI = Pierzasta -# Fuzzy -CloudType.CS = Warstwowo - pierzasta -# Fuzzy -CloudType.CU = Kłębiasta -# Fuzzy -CloudType.NS = Warstwowa deszczowa -# Fuzzy -CloudType.SC = Kłębiasto warstwowa -# Fuzzy -CloudType.ST = Warstwowa -# Fuzzy -CloudType.TCU = Wypiętrzona chmura kłębiasta -Descriptive.BC = płaty -Descriptive.BL = zawieja -Descriptive.DR = zamieć przyziemna -Descriptive.FZ = opad marznący -Descriptive.MI = niskie -Descriptive.PR = częściowe -Descriptive.SH = opad przelotny -Descriptive.TS = burza -Error.prefix = Wystąpił błąd. Kod błędu numer -ErrorCode.AirportNotFound = Nie znaleziono lotniska w tej depeszy. -ErrorCode.InvalidMessage = Wprowadzona depesza jest nieprawidłowa. -Intensity.- = Słaby -Intensity.+ = Silny -Intensity.VC = W pobliżu -Phenomenon.BR = zamglenie -Phenomenon.DS = burza piaskowa -Phenomenon.DU = pył -Phenomenon.DZ = mżawka -Phenomenon.FC = trąba powietrzna -Phenomenon.FG = mgła -Phenomenon.FU = dym -Phenomenon.GR = grad -Phenomenon.GS = krupa śnieżna -Phenomenon.HZ = zmętnienie -Phenomenon.IC = słupki lodowe -Phenomenon.PL = deszcz lodowy -Phenomenon.PO = wiry pyłowe -Phenomenon.PY = aerozol -Phenomenon.RA = deszcz -Phenomenon.SA = piasek -Phenomenon.SG = śnieg ziarnisty -Phenomenon.SN = śnieg -Phenomenon.SQ = nawałnica -Phenomenon.SS = burza piaskowa -Phenomenon.UP = marznący deszcz -Phenomenon.VA = popiół wulkaniczny -MetarFacade.InvalidIcao = Kod Icao jest nieprawidłowy -Converter.D = malejący -Converter.E = wschód -Converter.N = północ -Converter.NE = północny wschód -Converter.NSC = nieznaczna zmiana -Converter.NW = północny zachód -Converter.S = południe -Converter.SE = południowy zachód -Converter.SW = połódniowy wschód -Converter.U = rosnący -Converter.VRB = Zmienny -Converter.W = zachód -WeatherChangeType.FM = od -WeatherChangeType.BECMG = Nadchodząca -WeatherChangeType.TEMPO = Tymczasowa -WeatherChangeType.PROB = Prawdopodobieństwo -TimeIndicator.AT = o -TimeIndicator.FM = od -TimeIndicator.TL = do +CloudQuantity.BKN=Od 5/8 do 7/8 +CloudQuantity.FEW=Od 1/8 do 2/8 +CloudQuantity.NSC=Nieznaczne zachmurzenie. +CloudQuantity.OVC=8/8 +CloudQuantity.SCT=Od 3/8 do 4/8 +CloudQuantity.SKC=Czyste niebo + +CloudType.AC=Średnie kłębiaste +CloudType.AS=Średnia warstwowa +CloudType.CB=Kłębiasta deszczowa +CloudType.CC=Piętra wysokiego rodzaj kłębiasto-pierzaste +CloudType.CI=Pierzasta +CloudType.CS=Warstwowo - pierzasta +CloudType.CU=Kłębiasta +CloudType.NS=Warstwowa deszczowa +CloudType.SC=Kłębiasto warstwowa +CloudType.ST=Warstwowa +CloudType.TCU=Wypiętrzona chmura kłębiasta + + + + + +Descriptive.BC=płaty +Descriptive.BL=zawieja +Descriptive.DR=zamieć przyziemna +Descriptive.FZ=opad marznący +Descriptive.MI=niskie +Descriptive.PR=częściowe +Descriptive.SH=opad przelotny +Descriptive.TS=burza + +Error.prefix=Wystąpił błąd. Kod błędu numer +ErrorCode.AirportNotFound=Nie znaleziono lotniska w tej depeszy. +ErrorCode.InvalidMessage=Wprowadzona depesza jest nieprawidłowa. + + +Intensity.-=Słaby +Intensity.+=Silny +Intensity.VC=W pobliżu + +Phenomenon.BR=zamglenie +Phenomenon.DS=burza piaskowa +Phenomenon.DU=pył +Phenomenon.DZ=mżawka +Phenomenon.FC=trąba powietrzna +Phenomenon.FG=mgła +Phenomenon.FU=dym +Phenomenon.GR=grad +Phenomenon.GS=krupa śnieżna +Phenomenon.HZ=zmętnienie +Phenomenon.IC=słupki lodowe +Phenomenon.PL=deszcz lodowy +Phenomenon.PO=wiry pyłowe +Phenomenon.PY=aerozol +Phenomenon.RA=deszcz +Phenomenon.SA=piasek +Phenomenon.SG=śnieg ziarnisty +Phenomenon.SN=śnieg +Phenomenon.SQ=nawałnica +Phenomenon.SS=burza piaskowa +Phenomenon.UP=marznący deszcz +Phenomenon.VA=popiół wulkaniczny + + + +MetarFacade.InvalidIcao=Kod Icao jest nieprawidłowy + +Converter.D=malejący +Converter.E=wschód +Converter.N=północ +Converter.NE=północny wschód +Converter.NSC=nieznaczna zmiana +Converter.NW=północny zachód +Converter.S=południe +Converter.SE=południowy zachód +Converter.SW=połódniowy wschód +Converter.U=rosnący +Converter.VRB=Zmienny +Converter.W=zachód + +WeatherChangeType.FM=od +WeatherChangeType.BECMG=Nadchodząca +WeatherChangeType.TEMPO=Tymczasowa +WeatherChangeType.PROB=Prawdopodobieństwo + +TimeIndicator.AT=o +TimeIndicator.FM=od +TimeIndicator.TL=do diff --git a/metarParser-commons/src/main/resources/internationalization/messages_fr.properties b/metarParser-commons/src/main/resources/internationalization/messages_fr.properties index 70f4f862..a0605713 100644 --- a/metarParser-commons/src/main/resources/internationalization/messages_fr.properties +++ b/metarParser-commons/src/main/resources/internationalization/messages_fr.properties @@ -85,6 +85,7 @@ Phenomenon.TS=orage Remark.AO1=stations automatisées sans discriminateur de précipitation Remark.AO2=stations automatisées avec discriminateur de précipitation +Remark.ALQDS=tous les quadrants Remark.Barometer.0=Augmentation, puis diminution Remark.Barometer.1=Augmentation, puis stabilisation or augmentation puis augmentation légère Remark.Barometer.2=augmentation régulière ou instable @@ -97,6 +98,7 @@ Remark.Barometer.8=stable ou augmentation puis diminution; ou diminution puis di Remark.BASED=basée Remark.Ceiling.Height=variation du plafond entre {0} et {1} pieds Remark.Ceiling.Second.Location=plafond de {0} pieds mesuré par un second capteur situé à {1} +Remark.DSNT=éloigné Remark.FCST=prévision Remark.FUNNELCLOUD=nuage en entonnoir Remark.Hail=les plus gros grêlons ont un diamètre de {0} pouces @@ -109,6 +111,7 @@ Remark.Hourly.Temperature.Dew.Point=température horaire de {0}°C et point de r Remark.Ice.Accretion.Amount={0}/100 d''un pouce d''accrétion de glace au cours des {1} dernières heures Remark.HVY=fort Remark.LGT=léger +Remark.LTG=éclair Remark.MOD=modéré Remark.Obscuration=couche de {0} à {1} pieds composée de {2} Remark.ON=sur diff --git a/metarParser-commons/src/main/resources/internationalization/messages_it.properties b/metarParser-commons/src/main/resources/internationalization/messages_it.properties new file mode 100644 index 00000000..cf07f46a --- /dev/null +++ b/metarParser-commons/src/main/resources/internationalization/messages_it.properties @@ -0,0 +1,224 @@ +CloudQuantity.BKN=molto nuvoloso +CloudQuantity.FEW=leggermente nuvoloso +CloudQuantity.NSC=Nessuna nuvola significativa +CloudQuantity.OVC=coperto +CloudQuantity.SCT=sparse +CloudQuantity.SKC=cielo sereno + +CloudType.AC=Altocumulo +CloudType.AS=Altostrato +CloudType.CB=Cumulonembo +CloudType.CC=Cirrocumulo +CloudType.CI=Cirro +CloudType.CS=Cirrostrato +CloudType.CU=Cumulo +CloudType.NS=Nembostrato +CloudType.SC=Stratocumulo +CloudType.ST=Strato +CloudType.TCU=Cumuli torreggiantidecreasing + +DepositBrakingCapacity.NOT_REPORTED=non riportato +DepositBrakingCapacity.POOR=scarso +DepositBrakingCapacity.MEDIUM_POOR=medio/scarso +DepositBrakingCapacity.MEDIUM=medio +DepositBrakingCapacity.MEDIUM_GOOD=medio/buono +DepositBrakingCapacity.GOOD=buono +DepositBrakingCapacity.UNRELIABLE=cifre inaffidabili + +DepositCoverage.NOT_REPORTED=non riportato +DepositCoverage.LESS_10=meno del 10% +DepositCoverage.FROM_11_TO_25=dal 11% al 25% +DepositCoverage.FROM_26_TO_50=dal 26% al 50% +DepositCoverage.FROM_51_TO_100=dal 51% al 100% + +DepositThickness.NOT_REPORTED=non riportato +DepositThickness.LESS_1_MM=meno di 1 mm +DepositThickness.THICKNESS_10=10 cm +DepositThickness.THICKNESS_15=15 cm +DepositThickness.THICKNESS_20=20 cm +DepositThickness.THICKNESS_25=25 cm +DepositThickness.THICKNESS_30=30 cm +DepositThickness.THICKNESS_35=35 cm +DepositThickness.THICKNESS_40=40 cm +DepositThickness.CLOSED=chiusa + +DepositType.NOT_REPORTED=non riportato +DepositType.CLEAR_DRY=pulita e asciutta +DepositType.DAMP=umido +DepositType.WET_WATER_PATCHES=pozzanghere bagnate +DepositType.RIME_FROST_COVERED=ricoperta di brina +DepositType.DRY_SNOW=neve asciutta +DepositType.WET_SNOW=neve bagnata +DepositType.ICE=ghiaccio +DepositType.COMPACTED_SNOW=neve compatta +DepositType.FROZEN_RIDGES=solchi o creste congelate + +Descriptive.BC=banchi di nebbia +Descriptive.BL=sollevamento alto +Descriptive.DR=sollevamento basso +Descriptive.FZ=congelantesi +Descriptive.MI=strati di nebbia +Descriptive.PR=parziale +Descriptive.SH=rovescio +Descriptive.TS=temporale + +Error.prefix=Si è verificato un errore. Errore nr. +ErrorCode.AirportNotFound=L’aeroporto non è stato trovato in questa notifica +ErrorCode.InvalidMessage=Il messaggio non è valido + +Indicator.M=minore di +Indicator.P=maggiore di + +Intensity.-=Debole +Intensity.+=Forte +Intensity.VC=Nelle vicinanze + +Phenomenon.BR=foschia +Phenomenon.DS=tempesta di polvere +Phenomenon.DU=polvere su un’area estesa +Phenomenon.DZ=pioviggine +Phenomenon.FC=tornado o tromba marina +Phenomenon.FG=nebbia +Phenomenon.FU=fumo +Phenomenon.GR=grandine +Phenomenon.GS=grandine piccola e/o granuli di neve +Phenomenon.HZ=caligine +Phenomenon.IC=cristalli di ghiaccio +Phenomenon.PL=granuli di ghiaccio +Phenomenon.PO=mulinelli di polvere/sabbia +Phenomenon.PY=schizzi +Phenomenon.RA=pioggia +Phenomenon.SA=sabbia +Phenomenon.SG=neve granulosa +Phenomenon.SN=neve +Phenomenon.SQ=groppo +Phenomenon.SS=tempesta di sabbia +Phenomenon.UP=precipitazione sconosciuta +Phenomenon.VA=cenere vulcanica +Phenomenon.TS=temporale + +Remark.AO1=stazioni automatizzate senza discriminatore di precipitazione +Remark.AO2=stazione automatizzata con discriminatore di precipitazione +Remark.BASED=basato +Remark.Ceiling.Height=base delle nubi tra {0} e {1} piedi +Remark.Ceiling.Second.Location=base delle nubi di {0} piedi misurato da un secondo sensore situato a {1} +Remark.FCST=previsione +Remark.FUNNELCLOUD=nuvole a imbuto +Remark.Hail=chicchi di grandine più grandi con un diametro di {0} pollici +Remark.Hail.LesserThan=chicchi di grandine più grandi con un diametro inferiore di {0} pollici +Remark.HVY=pesante +Remark.LGT=leggero +Remark.MOD=moderato +Remark.Obscuration={0} strato a {1} piedi composto da {2} +Remark.ON=on +Remark.NXT=prossimo +Remark.PeakWind=picco di vento di {1} nodi da {0} gradi a {2}\:{3} +Remark.Precipitation.Beg.End={0} {1} inizia a {2}\:{3} e termina a {4}\:{5} +Remark.PRESFR=pressione in caduta rapidamente +Remark.PRESRR=pressione in salita rapidamente +Remark.Second.Location.Visibility=visibilità di {0} SM misurata da un secondo sensore situato a {1} +Remark.Sea.Level.Pressure=pressione a livello del mare di {0} HPa +Remark.Sector.Visibility=visibilità di {1} SM in direzione {0} +Remark.SLPNO=pressione a livello del mare non disponibile +Remark.Snow.Increasing.Rapidly=aumento dell’altezza della neve di {0} pollici nell’ultima ora con un’altezza totale al suolo di {1} pollici +Remark.Snow.Pellets={0} neve tonda +Remark.Surface.Visibility=visibilità in superficie di {0} Statute Miles +Remark.Thunderstorm.Location=temporale {0} dalla stazione +Remark.Thunderstorm.Location.Moving=temporale {0} dalla stazione si muove in direzione di {1} +Remark.Tornadic.Activity.Beginning={0} inizia a {1}\:{2} {3} SM {4} dalla stazione +Remark.Tornadic.Activity.BegEnd={0} inizia a {1}\:{2} e termina a {3}\:{4} {5} SM {6} dalla stazione +Remark.Tornadic.Activity.Ending={0} termina a {1}\:{2} {3} SM {4} dalla stazione +Remark.TORNADO=tornado +Remark.Tower.Visibility=visibilità dalla torre di controllo di {0} Statute Miles +Remark.Variable.Prevailing.Visibility=visibilità prevalentemente variabile tra {0} e {1} SM +Remark.Variable.Sky.Condition=strato di nuvole che varia tra {0} e {1} +Remark.Variable.Sky.Condition.Height=strato di nubi a {0} piedi che varia tra {1} e {2} +Remark.VIRGA=virga +Remark.Virga.Direction=virga {0} dalla stazione +Remark.WATERSPOUT=tromba marina +Remark.WindShift=spostamento del vento a {0}\:{1} +Remark.WindShift.FROPA=spostamento del vento accompagnato da passaggio frontale a {0}\:{1} + + +MetarFacade.InvalidIcao=Codice ICAO non valido + +Converter.D=Diminuzione +Converter.E=Est +Converter.ENE=Est Nord Est +Converter.ESE=Est Sud Est +Converter.N=Nord +Converter.NE=Nord Est +Converter.NNE=Nord Nord Est +Converter.NNW=Nord Nord Ovest +Converter.NSC=nessun cambiamento significativo +Converter.NW=Nord Ovest +Converter.S=Sud +Converter.SE=Sud Est +Converter.SSE=Sud Sud Est +Converter.SSW=Sud Sud Ovest +Converter.SW=Sud Ovest +Converter.U=sempre più +Converter.VRB=Variabile +Converter.W=Ovest +Converter.WNW=Ovest Nord Ovest +Converter.WSW=Ovest Sud Ovest + +WeatherChangeType.FM=Da +WeatherChangeType.BECMG=Diventa +WeatherChangeType.TEMPO=Temporanea +WeatherChangeType.PROB=Probabilità + +TimeIndicator.AT=alle +TimeIndicator.FM=dalle +TimeIndicator.TL=fino alle +ToString.airport=aeroporto +ToString.altimeter=altimetro (hPa) +ToString.amendment=emendamento +ToString.auto=auto +ToString.cavok=cavok +ToString.clouds=nuvole +ToString.day.month=giorno del mese +ToString.day.hour=ora del giorno +ToString.deposit.braking=capacità frenante +ToString.deposit.coverage=copertura +ToString.deposit.thickness=spessore +ToString.deposit.type=tipo di deposito +ToString.descriptive=descrittivo +ToString.dew.point=punto di rugiada +ToString.end.day.month=ultimo giorno del mese +ToString.end.hour.day=ultima ora del giorno +ToString.height.feet=altezza (ft) +ToString.height.meter=altezza (m) +ToString.intensity=intensità +ToString.indicator=indicatore +ToString.message=messaggio originale +ToString.name=nome +ToString.nosig=nosig +ToString.phenomenons=fenomeni +ToString.probability=probabilità +ToString.quantity=quantità +ToString.remark=remark +ToString.report.time=ora del rapporto +ToString.runway.info=informazioni sulle piste +ToString.start.day.month=primo giorno del mese +ToString.start.hour.day=prima ora del giorno +ToString.start.minute=minuto di inizio +ToString.temperature=temperatura (°C) +ToString.temperature.max=temperatura massima (°C) +ToString.temperature.min=temperatura minima (°C) +ToString.trend=tendenza +ToString.trends=tendenze +ToString.type=tipo +ToString.visibility.main=visibilità principale +ToString.visibility.min=visibilità minima +ToString.visibility.min.direction=direzione visibilità minima +ToString.visibility.max=visibilità massima +ToString.vertical.visibility=visibilità verticale (ft) +ToString.weather.conditions=condizioni meteo +ToString.wind.direction=direzione +ToString.wind.direction.degrees=direzione (gradi) +ToString.wind.gusts=raffiche +ToString.wind.min.variation=variazione minima del vento +ToString.wind.max.variation=variazione massima del vento +ToString.wind.speed=velocità +ToString.wind.unit=unità diff --git a/metarParser-parsers/src/test/java/io/github/mivek/parser/RemarkParserTest.java b/metarParser-parsers/src/test/java/io/github/mivek/parser/RemarkParserTest.java index 14b551a2..2df0bb5e 100644 --- a/metarParser-parsers/src/test/java/io/github/mivek/parser/RemarkParserTest.java +++ b/metarParser-parsers/src/test/java/io/github/mivek/parser/RemarkParserTest.java @@ -382,4 +382,14 @@ public void testParseWithRmkSlp() { assertThat(remark, containsString("CF1AC8 CF TR")); assertThat(remark, containsString(Messages.getInstance().getString(REMARK_SEA_LEVEL_PRESSURE, "1009.1"))); } + + @Test + public void testParseWithDistantLightning() { + String code = "AO2 PK WND 13029/2000 LTG DSNT ALQDS P0020"; + String remark = parser.parse(code); + + assertThat(remark, containsString(Messages.getInstance().getString("Remark.LTG"))); + assertThat(remark, containsString(Messages.getInstance().getString("Remark.DSNT"))); + assertThat(remark, containsString(Messages.getInstance().getString("Remark.ALQDS"))); + } }