/*
 * Copyright 2009-2010 Aurimas Fišeras <aurimas@gmail.com>
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
 */

#include "resource.h"

/* UTF-8 */
#pragma code_page(65001)

LANGUAGE LANG_LITHUANIAN, SUBLANG_NEUTRAL

STRINGTABLE
{
    IDS_TO_PRIMITIVE        "Klaida keičiant objektą į primityvų tipą"
    IDS_INVALID_CALL_ARG    "Netinkamas kreipinys į procedūrą ar argumentas"
    IDS_CREATE_OBJ_ERROR    "Automatizacijos serveriui nepavyko sukurti objekto"
    IDS_NO_PROPERTY         "Objektas nepalaiko šios savybės ar metodo"
    IDS_UNSUPPORTED_ACTION  "Objektas nepalaiko šio veiksmo"
    IDS_ARG_NOT_OPT         "Argumentas nėra neprivalomas"
    IDS_SYNTAX_ERROR        "Sintaksės klaida"
    IDS_SEMICOLON           "Tikėtasi „;“"
    IDS_LBRACKET            "Tikėtasi „(“"
    IDS_RBRACKET            "Tikėtasi „)“"
    IDS_UNTERMINATED_STR    "Nebaigta eilutės konstanta"
    IDS_NOT_FUNC            "Tikėtasi funkcijos"
    IDS_NOT_DATE            "„[objektas]“ nėra datos objektas"
    IDS_NOT_NUM             "Tikėtasi skaičiaus"
    IDS_OBJECT_EXPECTED     "Tikėtasi objekto"
    IDS_ILLEGAL_ASSIGN      "Neleistinas priskyrimas"
    IDS_UNDEFINED           "„|“ yra neapibrėžtas"
    IDS_NOT_BOOL            "Tikėtasi loginio objekto"
    IDS_JSCRIPT_EXPECTED    "Tikėtasi JScript objekto"
    IDS_REGEXP_SYNTAX_ERROR "Sintaksės klaida reguliariajame reiškinyje"
    IDS_URI_INVALID_CHAR    "Koduotiname URI yra netinkamų simbolių"
    IDS_INVALID_LENGTH      "Masyvo dydis turi būti teigiamas sveikasis skaičius"
    IDS_ARRAY_EXPECTED      "Tikėtasi masyvo objekto"
}
