<?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" xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/ofbiz-properties.xsd">
    <property key="PortalPage.portalPageName.MYPORTAL_EMPLOYEE">
        <value xml:lang="en">Main</value>
        <value xml:lang="es">Principal</value>
        <value xml:lang="fr">Accueil</value>
        <value xml:lang="ja">メイン</value>
        <value xml:lang="pt-BR">Principal</value>
        <value xml:lang="ru">Главный</value>
        <value xml:lang="vi">Trang chủ</value>
        <value xml:lang="zh">首页</value>
        <value xml:lang="zh-TW">首頁</value>
    </property>
    <property key="PortalPage.portalPageName.MYPORTAL_EMPLOYEE0">
        <value xml:lang="en">My Comms</value>
        <value xml:lang="fr">Mes communications</value>
        <value xml:lang="ja">私の通信</value>
        <value xml:lang="ru">Мои связи</value>
        <value xml:lang="vi">Truyền thông Riêng</value>
        <value xml:lang="zh">我的沟通</value>
        <value xml:lang="zh-TW">我的通訊</value>
    </property>
    <property key="PortalPage.portalPageName.MYPORTAL_EMPLOYEE1">
        <value xml:lang="en">My Profile</value>
        <value xml:lang="es">Mi perfil</value>
        <value xml:lang="fr">Mon profil</value>
        <value xml:lang="ja">私のプロファイル</value>
        <value xml:lang="pt-BR">Meu Perfil</value>
        <value xml:lang="ru">Мой профиль</value>
        <value xml:lang="vi">Hồ sơ Riêng</value>
        <value xml:lang="zh">我的简介</value>
        <value xml:lang="zh-TW">我的基本資料</value>
    </property>
    <property key="PortalPage.portalPageName.MYPORTAL_EMPLOYEE2">
        <value xml:lang="en">Other Party Comms</value>
        <value xml:lang="fr">Autres communications</value>
        <value xml:lang="ja">その他取引先の通信</value>
        <value xml:lang="ru">Другие средства связи</value>
        <value xml:lang="vi">Truyền thông của Tác nhân liên quan</value>
        <value xml:lang="zh">其他会员的沟通</value>
        <value xml:lang="zh-TW">其他團體的通訊</value>
    </property>
    <property key="PortalPage.portalPageName.MYPORTAL_EMPLOYEE4">
        <value xml:lang="en">My Time Sheet</value>
        <value xml:lang="es">Mi hoja de tiempos</value>
        <value xml:lang="fr">Mes feuilles de temps</value>
        <value xml:lang="ja">私の予定表</value>
        <value xml:lang="pt-BR">Minha folha de tempo</value>
        <value xml:lang="ru">Мои временные рамки</value>
        <value xml:lang="vi">Khai báo công việc Riêng</value>
        <value xml:lang="zh">我的工单</value>
        <value xml:lang="zh-TW">我的工作報告</value>
    </property>
    <property key="PortalPage.portalPageName.MYPORTAL_EMPLOYEE5">
        <value xml:lang="en">My Tasks</value>
        <value xml:lang="fr">Mes tâches</value>
        <value xml:lang="ja">私のタスク</value>
        <value xml:lang="ru">Мои задачи</value>
        <value xml:lang="vi">Tác vụ - Đầu việc Riêng</value>
        <value xml:lang="zh">我的任务</value>
        <value xml:lang="zh-TW">我的任務</value>
    </property>
    <property key="PortalPage.portalPageName.MYPORTAL_EMPLOYEE6">
        <value xml:lang="en">My Leave</value>
        <value xml:lang="fr">Mes congés</value>
        <value xml:lang="ja">私の休暇</value>
        <value xml:lang="ru">Мой отпуск</value>
        <value xml:lang="vi">Nghỉ phép Riêng</value>
        <value xml:lang="zh">我的休假</value>
        <value xml:lang="zh-TW">我的休假</value>
    </property>
    <property key="PortalPage.portalPageName.MYPORTAL_EMPLOYEE7">
        <value xml:lang="en">My trainings</value>
        <value xml:lang="fr">Mes formations</value>
        <value xml:lang="ja">私のトレーニング</value>
        <value xml:lang="ru">Мои тренировки</value>
        <value xml:lang="vi">Đào tạo Riêng</value>
        <value xml:lang="zh">我的培训</value>
        <value xml:lang="zh-TW">我的教育訓練</value>
    </property>
    <property key="PortalPage.portalPageName.MYPORTAL_EMPLOYEE8">
        <value xml:lang="en">My Payments</value>
        <value xml:lang="fr">Mes paiements</value>
        <value xml:lang="ja">私の支払</value>
        <value xml:lang="ru">Мои платежи</value>
        <value xml:lang="vi">Thanh toán Riêng</value>
        <value xml:lang="zh">我的支付</value>
        <value xml:lang="zh-TW">我的付款</value>
    </property>
    <property key="PortalPage.portalPageName.ProductStoreFacility">
        <value xml:lang="de">Lager</value>
        <value xml:lang="en">Facility</value>
        <value xml:lang="es">Almacén</value>
        <value xml:lang="fr">Lieu de stockage</value>
        <value xml:lang="it">Stabilimento </value>
        <value xml:lang="ja">拠点</value>
        <value xml:lang="nl">Faciliteit</value>
        <value xml:lang="pt-BR">Instalação</value>
        <value xml:lang="ro">Compartiment </value>
        <value xml:lang="ru">Оборудование</value>
        <value xml:lang="th">คลังสินค้า</value>
        <value xml:lang="vi">Chi nhánh / Cơ sở</value>
        <value xml:lang="zh">场所</value>
        <value xml:lang="zh-CN">仓储设施</value>
        <value xml:lang="zh-TW">場所</value>
    </property>
</resource>
