<?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>
    </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>
    </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>
    </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>
    </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>
    </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>
    </property>
</resource>