<?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="EmplLeaveReasonType.description.CASUAL">
        <value xml:lang="en">Casual</value>
        <value xml:lang="fr">Convenance</value>
        <value xml:lang="ja">私事</value>
        <value xml:lang="vi">Tình cờ</value>
        <value xml:lang="zh">临时</value>
        <value xml:lang="zh_TW">臨時</value>
    </property>
    <property key="EmplLeaveReasonType.description.MEDICAL">
        <value xml:lang="en">Medical</value>
        <value xml:lang="fr">Maladie</value>
        <value xml:lang="ja">疾病</value>
        <value xml:lang="vi">Y tế</value>
        <value xml:lang="zh">疾病</value>
        <value xml:lang="zh_TW">疾病</value>
    </property>
    <property key="EmplLeaveType.description.INLAND_EARNED">
        <value xml:lang="en">Inland earned</value>
        <value xml:lang="fr">Congé payé</value>
        <value xml:lang="ja">国内取得</value>
        <value xml:lang="vi">Thu nhập quốc nội</value>
        <value xml:lang="zh">国内收入</value>
        <value xml:lang="zh_TW">國內收入</value>
    </property>
    <property key="EmplLeaveType.description.LOSS_OF_PAY">
        <value xml:lang="en">Loss of pay</value>
        <value xml:lang="fr">Sans solde</value>
        <value xml:lang="ja">無給</value>
        <value xml:lang="vi">Mất thanh toán</value>
        <value xml:lang="zh">无薪</value>
        <value xml:lang="zh_TW">無薪</value>
    </property>
    <property key="EmplLeaveType.description.RESTRICTED_HOLIDAY">
        <value xml:lang="en">Restricted holiday</value>
        <value xml:lang="fr">Jour férié</value>
        <value xml:lang="ja">制限日</value>
        <value xml:lang="vi">Kỳ nghỉ hạn chế</value>
        <value xml:lang="zh">受限的假期</value>
        <value xml:lang="zh_TW">受限的假期</value>
    </property>
    <property key="EmplLeaveType.description.SPECIAL_DAY_OFF">
        <value xml:lang="en">Special day off</value>
        <value xml:lang="fr">Congé</value>
        <value xml:lang="ja">特別休暇</value>
        <value xml:lang="vi">Ngày nghỉ đặc biệt</value>
        <value xml:lang="zh">特殊休假</value>
        <value xml:lang="zh_TW">特殊休假</value>
    </property>
</resource>
