<?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="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">Open for Business hjælp</value>
        <value xml:lang="de">Open for Business Hilfe</value>
        <value xml:lang="en">Open for Business Help</value>
        <value xml:lang="es">Ayuda de Open for Business</value>
        <value xml:lang="fr">Aide OFBiz (Open for Business)</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>
