/*-
 * ============LICENSE_START=======================================================
 * SDC
 * ================================================================================
 * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
 * ================================================================================
 * Licensed 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.
 * ============LICENSE_END=========================================================
 */

'use strict';

/* jshint quotmark: double */
window.SwaggerTranslator.learn({
    "Warning: Deprecated":"Uyarı: Deprecated",
    "Implementation Notes":"Gerçekleştirim Notları",
    "Response Class":"Dönen Sınıf",
    "Status":"Statü",
    "Parameters":"Parametreler",
    "Parameter":"Parametre",
    "Value":"Değer",
    "Description":"Açıklama",
    "Parameter Type":"Parametre Tipi",
    "Data Type":"Veri Tipi",
    "Response Messages":"Dönüş Mesajı",
    "HTTP Status Code":"HTTP Statü Kodu",
    "Reason":"Gerekçe",
    "Response Model":"Dönüş Modeli",
    "Request URL":"İstek URL",
    "Response Body":"Dönüş İçeriği",
    "Response Code":"Dönüş Kodu",
    "Response Headers":"Dönüş Üst Bilgileri",
    "Hide Response":"Dönüşü Gizle",
    "Headers":"Üst Bilgiler",
    "Try it out!":"Dene!",
    "Show/Hide":"Göster/Gizle",
    "List Operations":"Operasyonları Listele",
    "Expand Operations":"Operasyonları Aç",
    "Raw":"Ham",
    "can't parse JSON.  Raw result":"JSON çözümlenemiyor.  Ham sonuç",
    "Model Schema":"Model Şema",
    "Model":"Model",
    "apply":"uygula",
    "Username":"Kullanıcı Adı",
    "Password":"Parola",
    "Terms of service":"Servis şartları",
    "Created by":"Oluşturan",
    "See more at":"Daha fazlası için",
    "Contact the developer":"Geliştirici ile İletişime Geçin",
    "api version":"api versiyon",
    "Response Content Type":"Dönüş İçerik Tipi",
    "fetching resource":"kaynak getiriliyor",
    "fetching resource list":"kaynak listesi getiriliyor",
    "Explore":"Keşfet",
    "Show Swagger Petstore Example Apis":"Swagger Petstore Örnek Api'yi Gör",
    "Can't read from server.  It may not have the appropriate access-control-origin settings.":"Sunucudan okuma yapılamıyor. Sunucu access-control-origin ayarlarınızı kontrol edin.",
    "Please specify the protocol for":"Lütfen istenen adres için protokol belirtiniz",
    "Can't read swagger JSON from":"Swagger JSON bu kaynaktan okunamıyor",
    "Finished Loading Resource Information. Rendering Swagger UI":"Kaynak baglantısı tamamlandı. Swagger UI gösterime hazırlanıyor",
    "Unable to read api":"api okunamadı",
    "from path":"yoldan",
    "server returned":"sunucuya dönüldü"
});
