<?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="https://ofbiz.apache.org/dtds/ofbiz-properties.xsd">
    <property key="HelpNotFound">
        <value xml:lang="da">Hjælp emne ikke fundet</value>
        <value xml:lang="de">Hilfe Thema nicht gefunden.</value>
        <value xml:lang="en">Help topic not found.</value>
        <value xml:lang="es">No se ha encontrado el tema de ayuda.</value>
        <value xml:lang="fr">Sujet d'aide non trouvé.</value>
        <value xml:lang="it">Voce aiuto non trovata.</value>
        <value xml:lang="ja">ヘルプが見つかりません</value>
        <value xml:lang="pt-BR">Tópico de ajuda não foi encontrado.</value>
        <value xml:lang="ru">Справочник помощи не найден.</value>
        <value xml:lang="vi">Không tìm thấy nội dung Trợ giúp.</value>
        <value xml:lang="zh">帮助主题没有找到。</value>
        <value xml:lang="zh-TW">說明主題沒有找到.</value>
    </property>
    <property key="PageTitleHelp">
        <value xml:lang="da">Apache OFBiz hjælp</value>
        <value xml:lang="de">Apache OFBiz Hilfe</value>
        <value xml:lang="en">Apache OFBiz Help</value>
        <value xml:lang="es">Ayuda de Apache OFBiz</value>
        <value xml:lang="fr">Aide OFBiz (Apache OFBiz)</value>
        <value xml:lang="it">Aiuto</value>
        <value xml:lang="ja">OFBizヘルプ</value>
        <value xml:lang="pt-BR">Ajuda do OFBiz</value>
        <value xml:lang="ru">Открыть для бизнес-помощи</value>
        <value xml:lang="vi">Trợ giúp từ OFBiz</value>
        <value xml:lang="zh">OFBiz帮助</value>
        <value xml:lang="zh-TW">OFBiz說明</value>
    </property>
</resource>
