<?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="CommonExtCreatePublicMessage">
        <value xml:lang="de">Erzeuge öffentliche Nachricht</value>
        <value xml:lang="en">Create Public Message</value>
        <value xml:lang="fr">Créer un message public</value>
        <value xml:lang="it">Crea messaggio pubblico</value>
        <value xml:lang="pt_BR">Criar Mensagem Pública</value>
        <value xml:lang="zh">新建公共消息</value>
    </property>
    <property key="CommonExtDateInfoCreated">
        <value xml:lang="de">Datum Info erzeugt</value>
        <value xml:lang="en">Date info created</value>
        <value xml:lang="fr">Date de création</value>
        <value xml:lang="it">Data di creazione</value>
        <value xml:lang="pt_BR">Data da informação criada</value>
        <value xml:lang="zh">已创建日期信息</value>
    </property>
    <property key="CommonExtDateLastChanged">
        <value xml:lang="de">Datum Letzte Änderung</value>    
        <value xml:lang="en">Date Last Changed</value>
        <value xml:lang="fr">Dernière date de changement</value>
        <value xml:lang="it">Data ultimo cambiamento</value>
        <value xml:lang="pt_BR">Data da última modificação</value>
        <value xml:lang="zh">最后修改日期</value>
    </property>
    <property key="CommonExtSystemInfoNote">
        <value xml:lang="de">Systemnachricht</value>
        <value xml:lang="en">System Info Note</value>
        <value xml:lang="fr">Message d'information système</value>
        <value xml:lang="it">Messaggio di sistema</value>
        <value xml:lang="pt_BR">Nota de Informação do Sistema</value>
        <value xml:lang="zh">系统信息便笺</value>
    </property>
    <property key="CommonExtSystemInfoNoteForUser">
        <value xml:lang="de">Systemnachricht für Benutzer:</value>    
        <value xml:lang="en">System Info note for user:</value>
        <value xml:lang="fr">Message d'information système pour l'utilisateur :</value>
        <value xml:lang="it">Messaggio di sistema per l'utente:</value>
        <value xml:lang="pt_BR">Nota de Informação do Sistema para o usuário:</value>
        <value xml:lang="zh">系统信息便笺致用户：</value>
    </property>
    <property key="CommonExtSystemInfoStatus">
        <value xml:lang="de">System Information Status</value>    
        <value xml:lang="en">System Info Status</value>
        <value xml:lang="fr">Message d'information d'état</value>
        <value xml:lang="it">Stato messaggi di sistema</value>
        <value xml:lang="pt_BR">Informação de estado do sistema</value>
        <value xml:lang="zh">系统信息状态</value>
    </property>
    <property key="CommonExtSystemInfoStatusForUser">
        <value xml:lang="de">System Information Status für Benutzer:</value>    
        <value xml:lang="en">System Info status for user:</value>
        <value xml:lang="fr">Message d'information d'état pour l'utilisateur :</value>
        <value xml:lang="it">Stato messaggi di sistema per l'utente:</value>
        <value xml:lang="pt_BR">Informação de estado do sistema para o usuário:</value>
        <value xml:lang="zh">系统信息状态为用户：</value>
    </property>
</resource>
