Content-language: cs
Content-type: text/html; charset=UTF-8
Body:----------cs--
<!--#set var="CONTENT_LANGUAGE" value="cs"
--><!--#set var="TITLE" value="Přístup odmítnut!"
--><!--#include virtual="include/top.html" -->

  <!--#if expr="v('REDIRECT_URL') =~ m:/$:" -->

    Nemáte právo pro přístup do požadovaného adresáře. Buď neexistuje žádný
    dokument s&nbsp;obsahem (tzv. index), nebo je adresář chráněn proti čtení.

  <!--#else -->

    Nemáte právo pro přístup k&nbsp;požadovanému objektu.
    Buď je chráněn proti čtení, nebo není serverem čitelný.

  <!--#endif -->

<!--#include virtual="include/bottom.html" -->
----------cs--

Content-language: de
Content-type: text/html; charset=UTF-8
Body:----------de--
<!--#set var="CONTENT_LANGUAGE" value="de"
--><!--#set var="TITLE" value="Zugriff verweigert!"
--><!--#include virtual="include/top.html" -->

  <!--#if expr="v('REDIRECT_URL') =~ m:/$:" -->

    Der Zugriff auf das angeforderte Verzeichnis ist nicht möglich.
    Entweder ist kein Index-Dokument vorhanden oder das Verzeichnis
    ist zugriffsgeschützt.

  <!--#else -->

    Der Zugriff auf das angeforderte Objekt ist nicht möglich.
    Entweder kann es vom Server nicht gelesen werden oder es
    ist zugriffsgeschützt.

  <!--#endif -->

<!--#include virtual="include/bottom.html" -->
----------de--

Content-language: en
Content-type: text/html; charset=UTF-8
Body:----------en--
<!--#set var="TITLE" value="Access forbidden!"
--><!--#include virtual="include/top.html" -->

  <!--#if expr="v('REDIRECT_URL') =~ m:/$:" -->

    You don't have permission to access the requested directory.
    There is either no index document or the directory is read-protected.

  <!--#else -->

    You don't have permission to access the requested object.
    It is either read-protected or not readable by the server.

  <!--#endif -->

<!--#include virtual="include/bottom.html" -->
----------en--

Content-language: es
Content-type: text/html
Body:----------es--
<!--#set var="TITLE" value="¡Acceso prohibido!" -->
<!--#include virtual="include/top.html" -->

   <!--#if expr="v('REDIRECT_URL') =~ m:/$:" -->

      No tiene permiso para acceder al directorio solicitado.
      No hay ningún documento índice (index) o el directorio está
      protegido contra lectura.

  <!--#else -->

      No tiene permiso para acceder al objeto solicitado.
      Está protegido contra lectura o
      el servidor no puede leerlo.

  <!--#endif -->

<!--#include virtual="include/bottom.html" -->
----------es--

Content-language: fr
Content-type: text/html; charset=UTF-8
Body:----------fr--
<!--#set var="CONTENT_LANGUAGE" value="fr"
--><!--#set var="TITLE" value="Accès interdit!"
--><!--#include virtual="include/top.html" -->

  <!--#if expr="v('REDIRECT_URL') =~ m:/$:" -->

    Vous n'avez pas le droit d'accéder au répertoire
    demandé. Soit il n'y a pas de document index soit le répertoire
    est protégé.

  <!--#else -->

    Vous n'avez pas le droit d'accéder à l'objet
    demandé. Soit celui-ci est protégé, soit il ne peut
    être lu par le serveur.

  <!--#endif -->

<!--#include virtual="include/bottom.html" -->
----------fr--

Content-language: ga
Content-type: text/html; charset=UTF-8
Body:----------ga--
<!--#set var="TITLE" value="Rochtain neamh-cheadaithe!"
--><!--#include virtual="include/top.html" -->

  <!--#if expr="v('REDIRECT_URL') =~ m:/$:" -->

    Níl cead agat rochtain a dhéanamh ar an comhadlann faoi
    iarratais.  Is féidir nach bhfuil aon doiciméad
    innéacs, nó go bhfuil cosaint ar lémh an comhadlann.

  <!--#else -->

    Níl cead agat rochtain a dhéanamh ar an aidhm faoi iarratais.
    Is féidir go bhfuil cosaint ar lé air, nó go bhfuil
    sé doléite don freastalaí.
    
  <!--#endif -->

<!--#include virtual="include/bottom.html" -->
----------ga--

Content-language: it
Content-type: text/html; charset=UTF-8
Body:----------it--
<!--#set var="CONTENT_LANGUAGE" value="it"
--><!--#set var="TITLE" value="Accesso negato!"
--><!--#include virtual="include/top.html" -->

  <!--#if expr="v('REDIRECT_URL') =~ m:/$:" -->

   Non disponi dei permessi necessari per accedere alla
   directory richiesta oppure non esiste il documento indice.

  <!--#else -->

   Non disponi dei permessi necessari per accedere all'oggetto
   richiesto, oppure l'oggetto non può essere letto dal server.

  <!--#endif -->

<!--#include virtual="include/bottom.html" -->
----------it--

Content-language: ja
Content-type: text/html; charset=UTF-8
Body:----------ja--
<!--#set var="CONTENT_LANGUAGE" value="ja"
--><!--#set var="TITLE" value="Access forbidden!"
--><!--#include virtual="include/top.html" -->

  <!--#if expr="v('REDIRECT_URL') =~ m:/$:" -->

    要求されたディレクトリへのアクセス権限がありません。
    インデックスドキュメントが存在しないか、
    ディレクトリの読み込みが許可されていません。

  <!--#else -->

    要求されたオブジェクトへのアクセス権がありません。
    読み込みが許可されていないか、
    サーバが読み込みに失敗したかでしょう。

  <!--#endif -->

<!--#include virtual="include/bottom.html" -->
----------ja--

Content-language: ko
Content-type: text/html; charset=UTF-8
Body:----------ko--
<!--#set var="CONTENT_LANGUAGE" value="ko"
--><!--#set var="TITLE" value="접근이 거부됨!"
--><!--#include virtual="include/top.html" -->

  <!--#if expr="v('REDIRECT_URL') =~ m:/$:" -->

   요청한 디렉토리에 접근할 수 있는 권한이 없습니다.
   디렉토리에 첫 페이지가 없거나 아니면 읽기 보호가 되어 있습니다.

  <!--#else -->

   요청한 객체에 접근할 수 있는 권한이 없습니다.
   읽기 보호가 되어 있거나 웹서버가 읽을 수 없도록 되어 있습니다.

  <!--#endif -->

<!--#include virtual="include/bottom.html" -->
----------ko--

Content-language: nl
Content-type: text/html; charset=UTF-8
Body:----------nl--
<!--#set var="CONTENT_LANGUAGE" value="nl"
--><!--#set var="TITLE" value="Toegang verboden!"
--><!--#include virtual="include/top.html" -->

  <!--#if expr="v('REDIRECT_URL') =~ m:/$:" -->

   U hebt niet de toestemming om toegang te krijgen tot de gevraagde map.
   Er is of wel geen index document of de map is beveiligd tegen lezen.

  <!--#else -->

   U hebt niet de toestemming om toegang te krijgen tot de gevraagde map.
   Die is ofwel beveiligd tegen lezen of onleesbaar door de server.

  <!--#endif -->

<!--#include virtual="include/bottom.html" -->
----------nl--

Content-language: nb
Content-type: text/html; charset=UTF-8
Body:----------nb--
<!--#set var="CONTENT_LANGUAGE" value="nb"
--><!--#set var="TITLE" value="Adgang forbudt!"
--><!--#include virtual="include/top.html" -->

  <!--#if expr="v('REDIRECT_URL') =~ m:/$:" -->

    Du har ikke tilstrekkelige rettigheter for å få tilgang til den
    ønskede katalogen. Det eksisterer ikke et indeksdokument, eller
    katalogen er lesebeskyttet.

  <!--#else -->

    Du har ikke tilstrekkelige rettigheter for å få adgang til det
    ønskede dokumentet. Objektet er lesebeskyttet, eller ikke lesbart
    for serveren.

  <!--#endif -->

<!--#include virtual="include/bottom.html" -->
----------nb--

Content-language: pl
Content-type: text/html; charset=UTF-8
Body:----------pl--
<!--#set var="CONTENT_LANGUAGE" value="pl"
--><!--#set var="TITLE" value="Zabroniony dost&#281;p!"
--><!--#include virtual="include/top.html" -->

  <!--#if expr="v('REDIRECT_URL') =~ m:/$:" -->

    Nie masz prawa dost&#281;pu do &#380;&#261;danego katalogu. W katalogu nie
    ma indeksu lub katalog jest zabezpieczony przed odczytem.

  <!--#else -->

    Nie masz dost&#281;pu do &#380;&#261;danego obiektu. Jest on zabezpieczony
    przed odczytem lub nie mo&#380;e by&#263; odczytany przez serwer.

  <!--#endif -->

<!--#include virtual="include/bottom.html" -->
----------pl--

Content-language: pt-br
Content-type: text/html; charset=UTF-8
Body:-------pt-br--
<!--#set var="CONTENT_LANGUAGE" value="pt-br"
--><!--#set var="TITLE" value="Acesso Proibido!"
--><!--#include virtual="include/top.html" -->

  <!--#if expr="v('REDIRECT_URL') =~ m:/$:" -->

   Você não tem permissão para acessar o 
   diretório requisitado.
   Pode não existir o arquivo de índice ou 
   o diretório pode estar protegido contra leitura.

  <!--#else -->

   Você não tem permissão para acessar o 
   objeto requisitado. Ele pode estar protegido contra leitura ou 
   não ser legível pelo servidor.

  <!--#endif -->

<!--#include virtual="include/bottom.html" -->
-------pt-br--

Content-language: pt
Content-type: text/html; charset=ISO-8859-1
Body:----------pt--
<!--#set var="TITLE" value="Acesso proibido!"
--><!--#include virtual="include/top.html" -->

  <!--#if expr="v('REDIRECT_URL') =~ m:/$:" -->

	Não tem permissão para aceder ao directório
	que deseja. Ou não existe o documento de índice
	ou o directório está protegido contra leitura.

  <!--#else -->

	Não tem permissão para aceder ao objecto
	que deseja. Este está protegido contra leitura ou
	o servidor não o consegue ler.

  <!--#endif -->

<!--#include virtual="include/bottom.html" -->
----------pt--

Content-language: ro
Content-type: text/html; charset=UTF-8
Body:----------ro--
<!--#set var="CONTENT_LANGUAGE" value="ro"
--><!--#set var="TITLE" value="Accesul interzis!"
--><!--#include virtual="include/top.html" -->

  <!--#if expr="v('REDIRECT_URL') =~ m:/$:" -->

    Nu aveti permisiunea sa accesati directorul cerut.
    Nu este nici un document index sau directorul este protejat la citire.

  <!--#else -->

    Nu aveti permisiunea sa accesati obiectul cerut.
    Este protejat la citire sau nu poate fi citit de server.

  <!--#endif -->

<!--#include virtual="include/bottom.html" -->
----------ro--

Content-language: ru
Content-type: text/html; charset=UTF-8
Body:----------ru--
<!--#set var="TITLE" value="Доступ запрещён!"
--><!--#include virtual="include/top.html" -->

  <!--#if expr="v('REDIRECT_URL') =~ m:/$:" -->

    У Вас нет прав доступа к этой директории.
    Отсутствует индексный файл, или директория недоступна для чтения.

  <!--#else -->

    У Вас нет прав доступа к этому объекту.
    Файл недоступен для чтения, или сервер не может его прочитать.

  <!--#endif -->

<!--#include virtual="include/bottom.html" -->
----------ru--

Content-language: sr
Content-type: text/html; charset=UTF-8
Body:----------sr--
<!--#set var="CONTENT_LANGUAGE" value="sr"
--><!--#set var="TITLE" value="Забрањен приступ!"
--><!--#include virtual="include/top.html" -->

  <!--#if expr="v('REDIRECT_URL') =~ m:/$:" -->

    Немате дозволу да приступите захтеваном директоријуму.
    Могуће је да нема индексног документа, или да је директоријум заштићен од читања.

  <!--#else -->

    Немате дозволу да приступите захтеваном објекту.
    Могуће је да је заштићен од читања, или да га сервер не може прочитати.

  <!--#endif -->

<!--#include virtual="include/bottom.html" -->
----------sr--

Content-language: sv
Content-type: text/html; charset=UTF-8
Body:----------sv--
<!--#set var="CONTENT_LANGUAGE" value="sv"
--><!--#set var="TITLE" value="&Aring;tkomst förbjuden!"
--><!--#include virtual="include/top.html" -->

  <!--#if expr="v('REDIRECT_URL') =~ m:/$:" -->

    Du har inte tillräckliga rättigheter för att få
    tillgång till den önskade katalogen. Det existerar inget
    indexdokument eller så är katalogen lässkyddad.

  <!--#else -->

    Du har inte tillräckliga rättigheter för att få
    tillgång till det önskade objektet. Objektet är
    lässkyddat eller inte läsbart för servern.

  <!--#endif -->

<!--#include virtual="include/bottom.html" -->
----------sv--

Content-language: tr
Content-type: text/html; charset=UTF-8
Body:----------tr--
<!--#set var="CONTENT_LANGUAGE" value="tr"
--><!--#set var="TITLE" value="Erişim engellendi!"
--><!--#include virtual="include/top.html" -->

  <!--#if expr="v('REDIRECT_URL') =~ m:/$:" -->

    Talep ettiğiniz dizine erişim izniniz yok.
    Ya dizin içerik dosyası yok, ya da dizin okumaya karşı korumalı.

  <!--#else -->

    Talep ettiğiniz dizine erişim izniniz yok.
    Dizin, ya okumaya karşı korumalı 
    ya da sunucu tarafından okunamıyor.

  <!--#endif -->

<!--#include virtual="include/bottom.html" -->
----------tr--

Content-language: zh-cn
Content-type: text/html; charset=UTF-8
Body:----------zh-cn--
<!--#set var="CONTENT_LANGUAGE" value="zh-cn"
--><!--#set var="TITLE" value="禁止访问！"
--><!--#include virtual="include/top.html" -->

  <!--#if expr="v('REDIRECT_URL') =~ m:/$:" -->

    您无权访问所请求的目录。
    这是由于没有主页或该目录不允许被读取导致的。

  <!--#else -->

    您无权访问所请求的对象。
    它可能不允许被读取或无法被服务器读取。

  <!--#endif -->

<!--#include virtual="include/bottom.html" -->
----------zh-cn--

Content-language: zh-tw
Content-type: text/html; charset=UTF-8
Body:----------zh-tw--
<!--#set var="CONTENT_LANGUAGE" value="zh-tw"
--><!--#set var="TITLE" value="禁止訪問！"
--><!--#include virtual="include/top.html" -->

  <!--#if expr="v('REDIRECT_URL') =~ m:/$:" -->

    您無權訪問所請求的目錄。
    這是由於沒有主頁或該目錄不允許被讀取導致的。

  <!--#else -->

    您無權訪問所請求的物件。
    它可能不允許被讀取或無法被伺服器讀取。

  <!--#endif -->

<!--#include virtual="include/bottom.html" -->
----------zh-tw--
