<?xml version="1.0" encoding="UTF-8"?>
<!--

    Licensed to the Apache Software Foundation (ASF) under one
    or more contributor license agreements.  See the NOTICE file
    distributed with this work for additional information
    regarding copyright ownership.  The ASF licenses this file
    to you under the Apache License, Version 2.0 (the
    "License"); you may not use this file except in compliance
    with the License.  You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing,
    software distributed under the License is distributed on an
    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    KIND, either express or implied.  See the License for the
    specific language governing permissions and limitations
    under the License.
--><resource xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <property key="hour.plural">
        <value xml:lang="de">Stunden</value>
        <value xml:lang="en">hours</value>
        <value xml:lang="es">horas</value>
        <value xml:lang="fr">Heures</value>
        <value xml:lang="it">ore</value>
        <value xml:lang="pt">horas</value>
        <value xml:lang="ru">часы</value>
        <value xml:lang="th">ชั่วโมง</value>
        <value xml:lang="zh">小时</value>
        <value xml:lang="zh_TW">小時</value>
    </property>
    <property key="hour.singular">
        <value xml:lang="de">Stunde</value>
        <value xml:lang="en">hour</value>
        <value xml:lang="es">hora</value>
        <value xml:lang="fr">Heure</value>
        <value xml:lang="it">ora</value>
        <value xml:lang="pt">hora</value>
        <value xml:lang="ru">час</value>
        <value xml:lang="th">ชั่วโมง</value>
        <value xml:lang="zh">小时</value>
        <value xml:lang="zh_TW">小時</value>
    </property>
    <property key="millisecond.plural">
        <value xml:lang="de">Millisekunden</value>
        <value xml:lang="en">millliseconds</value>
        <value xml:lang="es">milisegundos</value>
        <value xml:lang="fr">Milllisecondes</value>
        <value xml:lang="it">millisecondi</value>
        <value xml:lang="pt">milisegundos</value>
        <value xml:lang="ru">миллисекунды</value>
        <value xml:lang="th">หนึ่งในพันของหนึ่งวินาที</value>
        <value xml:lang="zh">毫秒</value>
        <value xml:lang="zh_TW">毫秒</value>
    </property>
    <property key="millisecond.singular">
        <value xml:lang="de">Millisekunde</value>
        <value xml:lang="en">milllisecond</value>
        <value xml:lang="es">milisegundo</value>
        <value xml:lang="fr">Millliseconde</value>
        <value xml:lang="it">millisecondo</value>
        <value xml:lang="pt">milisegundo</value>
        <value xml:lang="ru">миллисекунда</value>
        <value xml:lang="th">หนึ่งในพันของหนึ่งวินาที</value>
        <value xml:lang="zh">毫秒</value>
        <value xml:lang="zh_TW">毫秒</value>
    </property>
    <property key="minute.plural">
        <value xml:lang="de">Minuten</value>
        <value xml:lang="en">minutes</value>
        <value xml:lang="es">minutos</value>
        <value xml:lang="fr">Minutes</value>
        <value xml:lang="it">minuti</value>
        <value xml:lang="pt">minutos</value>
        <value xml:lang="ru">минуты</value>
        <value xml:lang="th">นาที</value>
        <value xml:lang="zh">分钟</value>
        <value xml:lang="zh_TW">分鐘</value>
    </property>
    <property key="minute.singular">
        <value xml:lang="de">Minute</value>
        <value xml:lang="en">minute</value>
        <value xml:lang="es">minuto</value>
        <value xml:lang="fr">Minute</value>
        <value xml:lang="it">minuto</value>
        <value xml:lang="pt">minuto</value>
        <value xml:lang="ru">минута</value>
        <value xml:lang="th">นาที</value>
        <value xml:lang="zh">分钟</value>
        <value xml:lang="zh_TW">分鐘</value>
    </property>
    <property key="second.plural">
        <value xml:lang="de">Sekunden</value>
        <value xml:lang="en">seconds</value>
        <value xml:lang="es">segundos</value>
        <value xml:lang="fr">Secondes</value>
        <value xml:lang="it">secondi</value>
        <value xml:lang="pt">segundos</value>
        <value xml:lang="ru">секунды</value>
        <value xml:lang="th">วินาที</value>
        <value xml:lang="zh">秒</value>
        <value xml:lang="zh_TW">秒</value>
    </property>
    <property key="second.singular">
        <value xml:lang="de">Sekunde</value>
        <value xml:lang="en">second</value>
        <value xml:lang="es">segundo</value>
        <value xml:lang="fr">seconde</value>
        <value xml:lang="it">secondo</value>
        <value xml:lang="pt">segundo</value>
        <value xml:lang="ru">секунда</value>
        <value xml:lang="th">วินาที</value>
        <value xml:lang="zh">秒</value>
        <value xml:lang="zh_TW">秒</value>
    </property>
    <property key="week.plural">
        <value xml:lang="de">Wochen</value>
        <value xml:lang="en">weeks</value>
        <value xml:lang="es">semanas</value>
        <value xml:lang="fr">Semaines</value>
        <value xml:lang="it">settimane</value>
        <value xml:lang="pt">semanas</value>
        <value xml:lang="ru">недели</value>
        <value xml:lang="th">สัปดาห์</value>
        <value xml:lang="zh">周</value>
        <value xml:lang="zh_TW">周</value>
    </property>
    <property key="week.singular">
        <value xml:lang="de">Woche</value>
        <value xml:lang="en">week</value>
        <value xml:lang="es">semana</value>
        <value xml:lang="fr">Semaine</value>
        <value xml:lang="it">settimana</value>
        <value xml:lang="pt">semana</value>
        <value xml:lang="ru">неделя</value>
        <value xml:lang="th">สัปดาห์</value>
        <value xml:lang="zh">周</value>
        <value xml:lang="zh_TW">周</value>
    </property>
</resource>
