<?xml version="1.0"?>
<!--
  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.
-->
<catalogue xml:lang="ru">
    <message key="About">О проекте</message>
    <message key="Index">Содержание</message>
    <message key="Changes">Изменения</message>
    <message key="Todo">План</message>
    <message key="Samples">Примеры</message>
    <message key="Apache document">Страница документа Apache</message>
    <message key="Static content">Статическое содержание</message>
    <message key="Linking">Linking</message>
    <message key="Wiki page">Страница Wiki</message>
    <message key="ihtml page">Страница ihtml</message>
    <message key="ehtml page">Страница ehtml</message>
    <message key="FAQ">Вопросы/Ответы</message>
    <message key="Simplifed Docbook">Docbook страница</message>
    <message key="XSP page">XSP страница</message>
</catalogue>
