135'ten fazla dil için video çeviri API'si

Bir video yükleyin ve ihtiyacınız olan tüm dillerde geri alın. Video çeviri REST API’si, konuşmayı metne dönüştürür, çevirir ve seslendirme yapar; ardından çevrilmiş videoyu, altyazı dosyalarını ve inceleme için çevrilmiş metni geri gönderir.
135'ten fazla hedef dil
.srt ve .vtt formatında altyazılar
REST + Python SDK
one upload, every language
OAuth 2.0
# 1. exchange client credentials for a token (valid 1 hour)
curl -X POST https://rask-prod.auth.us-east-2.amazoncognito.com/oauth2/token \
  -u "$CLIENT_ID:$CLIENT_SECRET" \
  -d "grant_type=client_credentials"

# 2. upload the video once - YouTube, Drive, S3, Vimeo or direct URL
curl -X POST https://api.rask.ai/api/library/v1/media/link \
  -H "Authorization: Bearer $TOKEN" \
  -d '{"link": "https://youtu.be/...", "name": "Q3 launch"}'

# 3. one project per target language - they run in parallel
for lang in es-mx de-de ja-jp pt-br; do
  curl -X POST https://api.rask.ai/v2/projects \
    -H "Authorization: Bearer $TOKEN" \
    -d "{\"video_id\": \"$VIDEO_ID\", \"dst_lang\": \"$lang\"}"
done
GET /v2/projects/{project_id}
polling, 10s
# Poll each project until merging_done, then collect the files.
while :; do
  curl -s https://api.rask.ai/v2/projects/$ID \
    -H "Authorization: Bearer $TOKEN" \
    | jq '{status, translated_video, translation_srt_path}'
  sleep 10
done
Küresel ekipler tarafından kullanılmaktadır
Yetenekler

Bir projede video çeviri API’si ne işe yarar?

Tek bir API aracılığıyla videolarınızı otomatik olarak metne dönüştürün, çevirin ve seslendirin. Çevrilen metni inceleyin, terimleri sözlüklerle tutarlı hale getirin ve her platformun ihtiyaç duyduğu çıktı formatını indirin. İsteğe bağlı dudak senkronizasyonu özelliğini ekleyin; bu hizmet ayrı olarak faturalandırılır.

135'ten fazla dile çeviri

Videoları es-mx, pt-br, fr-ca veya desteklenen diğer dillerden birine çevirmek için bir video ve hedef dil gönderin. Kaynak dil otomatik olarak algılanır.

Konuşmacı tespiti ve her konuşmacıya özel sesler

Konuşmacılar otomatik olarak birbirinden ayrılır ve her birine hedef dilde bir ses atanır; böylece röportajları ve panelleri takip etmek kolaylaşır. Herhangi bir atamayı geçersiz kılabilir veya cevabı biliyorsanız doğrudan geçebilirsiniz.

Orijinal sesler mi, yoksa yapay zeka sesleri mi?

Instant Voice Clone özelliğiyle her konuşmacının orijinal sesini kullanın ya da videolar arasında tutarlı bir sunum sesi elde etmek için kaydedilmiş bir Özel Ses Klonu'nu yeniden kullanın. Her iki seçenek de desteklenen hedef dillerde mevcuttur; geri kalan diller için ise yapay zeka ses ön ayarları kullanılır.

Dudak senkronizasyonu

Ağız hareketlerini çevrilmiş konuşmaya uyumlu hale getirmek için dudak senkronizasyonunu etkinleştirin; bu, tamamlanmış herhangi bir projede isteğe bağlı bir işlem olarak sunulur ve ayrı olarak faturalandırılır. Yüz algılama işlemi önce gerçekleştirilir; bu nedenle, bu özelliği yalnızca işe yarayacağı yerlerde uygulayın.

Arka plan sesi korunur

Müzik, ortam sesi ve efektler konuşmalardan ayrılır ve yeni seslendirmeyle yeniden mikslenir; böylece izleyiciler orijinal yapımı farklı bir dilde dinler.

.srt ve .vtt formatında altyazılar

Çevrilen her videoya, hedef dilde ve çevrilen konuşmaya zamanlanmış olarak her iki formatta bir altyazı dosyası eklenir.

Sözlüklerle terminoloji kontrolü

Marka adları, ürün adları ve teknik terimler her videoda ve her dilde aynı şekilde çevrilir ya da kasıtlı olarak orijinal dilinde bırakılır.

Düzenleyebileceğiniz çevrilmiş metin

Kaynak metin ile çevirinin yan yana yer aldığı transkripti alın, bir satırı veya zaman damgasını düzeltin, ardından yeniden oluşturun. Düzeltmenler metni düzeltir ve kimse ses kaydını tekrar yapmaz.

Sınırsız ölçeklendirin

Kullanım hızı sınırı yok, eşzamanlılık kotası yok, anahtar başına kısıtlama yok. Tüm kataloğunuzu gönderin ve büyük hacimli metinleri paralel olarak birden fazla dile çevirin.
Çalışırken görün

Video çeviri API’sinin döndürdüğü sonuç

Aynı video klip, bu sayfadaki iş akışı aracılığıyla çevrilmiştir. Kaynak dosyada orijinal konuşmacılar yer almaktadır; konuşmalar Fransızca, Almanca, Portekizce ve İspanyolca’ya çevrilmiştir; arka plan sesi ise olduğu gibi korunmuştur.
EN bayrağı
En
FR bayrağı
Cuma
Almanya bayrağı
De
PT bayrağı
Pt
ES bayrağı
Es
İş Akışı

Yüklemeden çevrilmiş videoya kadar üç adım

Bir proje oluşturulduğunda çeviri süreci başlar. Projeyi düzenledikten sonra yeniden seslendirmek için daha sonra /generate uç noktasını kullanın.
1

Videonuzu yükleyin

Bir dosyayı çok parçalı form verisi olarak gönderin ya da YouTube, Google Drive, S3, Vimeo veya herhangi bir doğrudan indirme URL’sinden bir bağlantı paylaşın. Herhangi bir ödeme yapmadan önce bir medya kimliği ve teknik meta verileri alırsınız.

POST /api/library/v1/media/link
2

Her dil için bir proje oluşturun

Medya kimliğini video_id olarak ve hedef dili belirtin. Aynı yüklemeden ihtiyacınız olan her dil için birer proje oluşturun; varsa kendi transkriptinizi veya sözlüğünüzü ekleyin.

POST /v2/projects
3

Sesleri atayın ve yeniden dublaj yapın

merging_done durumuna ulaşana kadar durumu okuyun, ardından çevrilen videoyu ve o dil için altyazı dosyalarını indirin.

GET /v2/projects/{project_id}
İşlem süresi projeye göre değişir. Toplu çeviri için aynı yüklemeden hedef dil başına bir proje oluşturun, API üzerinden her birini takip edin ve tamamlandığında dosyaları indirin.
Sizin etrafınızda tasarlandı

Katalogdan daha fazlasına mı ihtiyacınız var? Ekibimizle konuşun.

Yeni diller, özel sesler, kendi teslimat yönteminiz, daha yüksek kapasite: Bir video çevirisi entegrasyonu genel katalog dışında bir şeye ihtiyaç duyduğunda ekibimiz gereksinimlerinizi ve mevcut seçenekleri inceler.

Diller ve sesler

Genel kataloğun dışında bir dile veya sese mi ihtiyacınız var? Gereksinimleriniz ve mevcut seçenekler hakkında ekibimizle konuşun.

Teslimat ve entegrasyon

Webhook’lar, kendi kuyruğunuza aktarım, doğrudan S3’ünüze teslimat, özel uç noktalar. İş akışınızın nasıl beslenmesini beklediğinizi bize bildirin.

Hacim ve işleme kapasitesi

Parti büyüklükleri, işlem başına hedef diller ve işleme önceliği, sabit ürün sınırları değil, sözleşme şartlarıdır.

Güvenlik ve barındırma

Veri saklama yeri, SSO ve SAML, saklama kuralları ve güvenlik incelemesi desteği, kurumsal adaptasyon sürecinin bir parçası olarak ele alınır.
Kullanım örnekleri

Video çevirisi API'sini kimler kullanır?

İçinde video barındıran platformlar

LMS ve müşteri eğitimi platformları, içerik üretici ve video platformları, webinarlar ve sanal etkinlik araçları, video barındırma ve iş akışı SaaS'leri, dijital benimseme platformları, canlı alışveriş ve kullanıcıların video oluşturmasına ya da metinden video üretmesine yardımcı olan yapay zeka video araçları. Kullanıcılarınız zaten ürününüze video içerik yüklüyor. API ile videoları aynı yerde, birden fazla dile çevirirler ve video çevirisi ücretli özelliklerinizden biri haline gelir.

Yerelleştirme ve prodüksiyon ajansları

Video çevirisini halihazırda kullandığınız dağıtım iş akışına bağlayın ve insan inceleme adımını koruyun. Dil uzmanları çevrilen metni segment segment inceler, böylece ekibiniz aynı insan gücüyle müşterilere daha fazla dilde içerik sunar.

Şirket içi kesintisiz video prodüksiyonu

Uluslararası perakende ve e-ticaret, küresel franchise'lar, medya yayıncıları, şirket içi eğitim akademileri. Çeviriyi yayın akışınıza entegre edin; böylece eğitim videoları ve ürün içerikleri farklı dillerde her pazara ulaşır ve kaynak video değiştiğinde ilgili dil sürümü yeniden oluşturulabilir.
Müşteri hikayeleri

Gerçek ekipler, ölçülebilir sonuçlar

Şirketlerin Rask ile videolarını kendi rakamlarıyla nasıl yerelleştirdiği.
ok
ok
Kod

Video çevirisi API kod örnekleri

Her dilde eksiksiz bir örnek: kimlik doğrulama, tek seferde yükleme, hedef dil başına proje oluşturma, bekleme, çevrilen video ve altyazı dosyalarını toplama.
# pip install git+ssh://[email protected]/braskai/rask-sdk.git@main
import asyncio
from rask_sdk import clients, enums, schemas

TARGETS = ["es-mx", "de-de", "ja-jp", "pt-br"]

async def translate(client, video_id, lang):
    job = await client.create_project(
        data=schemas.ProjectCreate(video_id=video_id, dst_lang=lang))
    while job.status is not enums.ProjectStatus.MERGING_DONE:
        await asyncio.sleep(10)
        job = await client.get_project(project_id=job.id)
    return job

async def main():
    client = clients.RaskSDKClient(client_id=CLIENT_ID, client_secret=CLIENT_SECRET)

    video = await client.create_media_link(
        data=schemas.MediaCreateLink(link="https://youtu.be/..."))
    while video.status is not enums.MediaStatus.READY:
        await asyncio.sleep(5)
        video = await client.get_media(media_id=video.id)

    jobs = await asyncio.gather(*(translate(client, video.id, l) for l in TARGETS))
    for j in jobs:
        print(j.dst_lang, j.translated_video, j.translation_srt_path)

asyncio.run(main())
github.com/braskai/rask-sdk
Python 3.8+, async
import time, requests

AUTH = "https://rask-prod.auth.us-east-2.amazoncognito.com/oauth2/token"
API  = "https://api.rask.ai"

token = requests.post(AUTH, auth=(CLIENT_ID, CLIENT_SECRET),
                      data={"grant_type": "client_credentials"}).json()["access_token"]
h = {"Authorization": f"Bearer {token}"}

video = requests.post(f"{API}/api/library/v1/media/link", headers=h,
                      json={"link": "https://youtu.be/..."}).json()
while video["status"] != "ready":
    time.sleep(5)
    video = requests.get(f"{API}/api/library/v1/media/{video['id']}", headers=h).json()

ids = [requests.post(f"{API}/v2/projects", headers=h,
                     json={"video_id": video["id"], "dst_lang": lang}).json()["id"]
       for lang in ["es-mx", "de-de", "ja-jp", "pt-br"]]

for pid in ids:
    while (p := requests.get(f"{API}/v2/projects/{pid}", headers=h).json())["status"] != "merging_done":
        time.sleep(10)
    print(p["dst_lang"], p["translated_video"], p["translation_vtt_path"])
requests + polling
no SDK required
// no dependencies, Node 18+ global fetch
const API = 'https://api.rask.ai';
const sleep = (ms) => new Promise((r) => setTimeout(r, ms));

const auth = await fetch('https://rask-prod.auth.us-east-2.amazoncognito.com/oauth2/token', {
  method: 'POST',
  headers: { Authorization: 'Basic ' + btoa(`${CLIENT_ID}:${CLIENT_SECRET}`) },
  body: new URLSearchParams({ grant_type: 'client_credentials' }),
}).then((r) => r.json());

const h = { Authorization: `Bearer ${auth.access_token}`, 'Content-Type': 'application/json' };
const get = (path) => fetch(API + path, { headers: h }).then((r) => r.json());
const post = (path, body) => fetch(API + path, { method: 'POST', headers: h, body: JSON.stringify(body) }).then((r) => r.json());

let video = await post('/api/library/v1/media/link', { link: 'https://youtu.be/...' });
while (video.status !== 'ready') { await sleep(5000); video = await get(`/api/library/v1/media/${video.id}`); }

const results = await Promise.all(['es-mx', 'de-de', 'ja-jp', 'pt-br'].map(async (dst_lang) => {
  let p = await post('/v2/projects', { video_id: video.id, dst_lang });
  while (p.status !== 'merging_done') { await sleep(10000); p = await get(`/v2/projects/${p.id}`); }
  return p;
}));

results.forEach((p) => console.log(p.dst_lang, p.translated_video, p.translation_srt_path));
fetch, Node 18+
plain HTTP
<?php
use GuzzleHttp\Client;

$http = new Client(['base_uri' => 'https://api.rask.ai']);
$json = fn($r) => json_decode($r->getBody(), true);

$auth = $json((new Client)->post('https://rask-prod.auth.us-east-2.amazoncognito.com/oauth2/token',
    ['auth' => [$clientId, $clientSecret], 'form_params' => ['grant_type' => 'client_credentials']]));
$h = ['Authorization' => 'Bearer ' . $auth['access_token']];

$video = $json($http->post('/api/library/v1/media/link',
    ['headers' => $h, 'json' => ['link' => 'https://youtu.be/...']]));
while ($video['status'] !== 'ready') {
    sleep(5);
    $video = $json($http->get("/api/library/v1/media/{$video['id']}", ['headers' => $h]));
}

foreach (['es-mx', 'de-de', 'ja-jp', 'pt-br'] as $lang) {
    $p = $json($http->post('/v2/projects', ['headers' => $h,
        'json' => ['video_id' => $video['id'], 'dst_lang' => $lang]]));
    while ($p['status'] !== 'merging_done') {
        sleep(10);
        $p = $json($http->get("/v2/projects/{$p['id']}", ['headers' => $h]));
    }
    echo $lang, ' ', $p['translation_srt_path'], PHP_EOL;
}
POST /v2/projects
OAuth 2.0 client credentials
<?php
use GuzzleHttp\Client;

$http = new Client(['base_uri' => 'https://api.rask.ai']);

$auth = json_decode((new Client)->post(
    'https://rask-prod.auth.us-east-2.amazoncognito.com/oauth2/token',
    ['auth' => [$clientId, $clientSecret],
     'form_params' => ['grant_type' => 'client_credentials']]
)->getBody(), true);

$h = ['Authorization' => 'Bearer ' . $auth['access_token']];

$media = json_decode($http->post('/api/library/v1/media/link',
    ['headers' => $h, 'json' => ['link' => 'https://youtu.be/...']])->getBody(), true);

$project = json_decode($http->post('/v2/projects',
    ['headers' => $h, 'json' => ['video_id' => $media['id'], 'dst_lang' => 'es-mx']])->getBody(), true);

while ($project['status'] !== 'merging_done') {
    sleep(10);
    $project = json_decode($http->get("/v2/projects/{$project['id']}",
        ['headers' => $h])->getBody(), true);
}
Guzzle 7
plain HTTP
Python resmi SDK'dır. Node, PHP ve cURL sekmeri, aynı uç noktalara yönelik saf HTTP örnekleridir.
İlerleme

Çeviri ilerleme durumu nasıl bildirilir?

Her proje belgelenmiş bir durum makinesinden geçer, böylece kullanıcılarınız her dil sürümü için gerçek ve aşamalı bir ilerleme çubuğunu takip edebilir. Yalnızca üç grup üzerinde işlem yapmanız gerekir.

Başarılı, burada durun

merging_done
Çeviri tamamlandı. Projeniz için mevcut indirme bağlantılarına ulaşmak üzere projeyi bir kez daha çağırın.

Devam ediyor, sorgulamaya devam edin

created
uploading
transcription_started
separate_background_started
determine_speakers_started
translation_started
voiceover_started
merging_started
Ayrıca eşleşen _tamamlandı durumlar.

Başarısızlık, dur ve bildir

failed
upload_failed
transcription_failed
translation_failed
voiceover_failed
merging_failed
no_audio
no_words
forbidden_link
no_audio, no_words and forbidden_link are specific enough to show directly to your own user. Every error also returns a machine-readable slug for error handling.
Observed run, 3:47 source video, en → es-mx
GET /v2/projects/{project_id}
   0s  created
  11s  transcription_started
  87s  translation_started
  99s  voiceover_started
 154s  merging_started
 165s  merging_done

Veya durum kontrolünü tamamen atlayın

Bize bir webhook uç noktası gösterin; her durum değişikliği bir POST olarak gelir, böylece kuyruğunuz her değişimi gerçekleştiği anda işler. Webhook teslimi, kurumsal sisteme geçiş sürecinin bir parçasıdır.
Belgeleri okuyun
preserveAspectRatio="xMidYMid meet" aria-hidden="true" role="img">
Çıktı

Çevrilen video, ses ve altyazılar

Her hedef dil için çevrilen videoyu ve SRT ile VTT formatındaki altyazıları indirin. Uygun planlarda, çevrilen sesi tek başına veya orijinal arka plan sesiyle mikserlenmiş olarak da indirebilirsiniz.
Alan
Biçim
Ne işe yarar
translated_video
MP4
Yayınlanmaya hazır, dublajlı video
voiceover
WAV
Kendi miksiniz için yalnızca çevrilen konuşma, arka plan sesi yok
translated_audio
WAV
Çevrilen konuşmanın orijinal arka plan sesiyle birleştirilmiş hali
translation_srt_path
.srt
Hedef dildeki altyazılar
translation_vtt_path
.vtt
Web oynatıcıları için WebVTT formatında altyazılar
original_video
MP4
Başvuru için saklanan orijinal dosyanız
Kontrol

Çevrilen metni inceleyin, ardından yalnızca değişen kısmın yeniden dublajını yapın

Projeyi oluştururken otomatik çeviriyle başlayın veya onaylanmış kendi çevirinizi bir SRT dosyası olarak yükleyin. Yayınlamadan önce metni inceleyin ve yalnızca değişen kısımları yeniden oluşturun. API üzerinden yapılan yeniden dublaj işlemleri, değiştirilen segmentler üzerinden ücretlendirilir.

Bölüm düzeyinde düzenleme

Bölüm düzeyinde düzenleme
Her proje, kaynak metin ve çevrilen metin yan yana olacak şekilde dökümünü segmentler halinde sunar; bu sayede bir düzeltme yalnızca tek bir yama (patch) isteğiyle yapılabilir.
Metni ve bölümlerini alın
Kaynak metni düzenleyin, biz de yeniden çevirelim
Kendi ifadelerinizi korumak için çevrilmiş metni doğrudan düzenleyin
Zaman damgalarını ayarlayın, yeni bölümler ekleyin veya mevcut bölümleri silin
Herhangi bir konuşmacıya ait sesi değiştirin

Terminoloji sözlükleri

Terminoloji sözlükleri
Marka adlarının, ürün adlarının ve teknik terimlerin her dilde aynı şekilde çevrilmesi veya bilinçli olarak çevrilmeden kalması için projeye bir sözlük ekleyin.

Bir sözlük tek bir dil çiftini kapsar ve hedef dilin tüm bölgesel varyantlarında geçerlidir; böylece tek bir İspanyolca sözlük es-mx ve es-es benzer şekilde hizmet eder. Proje kayıtları glossary_version, böylece sonraki düzenlemeler tamamlanan çalışmaları asla habersiz değiştirmez.
Girdi

Desteklenen dosya biçimleri

Yedi video ve dört ses formatından herhangi birini yükleyin veya bir URL gönderin. Desteklenmeyen bir dosya, herhangi bir çeviri dakikası ücretlendirilmeden önce içerik türüne göre reddedilir.

Video

7 biçim
.mp4
.mov
.mkv
.avi
.webm
.m4v
.3gp

Ses

4 biçim
.mp3
.wav
.flac
.m4a

Harcama yapmadan önce verileri inceleyin

Medya uç noktası (endpoint) süre, dosya boyutu, video codec bileşeni, kare hızı, çözünürlük, ses codec bileşeni, örnekleme hızı ve kanal düzenini döndürür. Bir dosyayı önceden doğrulayın ve maliyeti tahmin edin, çünkü video çevirisi dakika üzerinden ücretlendirilir.
Güvenlik ve uyumluluk

Güvenlik incelemeniz için hazır

Brask Inc, SOC 2 Tip II sertifikasına sahiptir, GDPR kurallarına uygun olarak çalışır ve canlı kontrol durumunu Güven Merkezi'nde yayınlar. Video içeriğiniz güvenli bir yapay zeka ortamında işlenir.

Sertifikalar

SOC 2 Tip II
GDPR
CAI ve C2PA üyesi

Şifreleme

Aktarım sırasında TLS 1.2
Bekleme durumunda AES-256
SSE-S3 yönetilen anahtarlar
En az 12 ayda bir anahtar değişimi

İçeriğiniz

Kapalı yapay zeka ortamı
Genel modelleri eğitmek için asla kullanılmaz
Tam dışa aktarım, sisteme bağımlılık yok

Erişim

SSO ve SAML
Rol tabanlı erişim kontrolü
OAuth 2.0 istemci kimlik bilgileri

Kurumsal

Veri konumu seçenekleri
Özel SLA'ler
Özel müşteri temsilcisi

Ses hakları

Kullanım haklarına sahip sentetik sesler
Onaya dayalı ses klonlama
Yapay zeka güvenlik kontrolleri, insan denetimi
Karşılaştırma

Rask API ve kendi kurduğunuz sistem

Bir metin çeviri API'si karakterleri çevirir. Video çevirisi ise konuşma tanıma, zamanlama, sesler ve ses miksajı da gerektirir. İşte aynı özelliğin iki farklı yolla oluşturulmuş hali.
İhtiyacınız olanlar
Rask API
Parçalardan oluşturulmuş
Deşifre, çeviri, sentez, miksaj
Tek çağrı
Üç veya dört farklı hizmet sağlayıcı ve bunları birbirine bağlayan kod
Çevirinin video ile zamanlanması
Dahil olanlar
Kendi uyarlama mantığınız
Konuşmacı tespiti ve her konuşmacıya özel sesler
Dahil olanlar
Bir konuşmacı ayrıştırma tedarikçisi ve kendi ses atama mantığınız
Arka plan müziği ve efektler korunur
Dahil olanlar
Oluşturup ayarladığınız bir kaynak ayırma adımı
.srt ve .vtt formatında altyazılar
Dahil olanlar
Kendi zamanlama verilerinizden oluşturulur
Dudak senkronizasyonu
İsteğe bağlı, ayrı olarak ücretlendirilir
Ayrı bir hizmet sağlayıcı
Çevrilen tek bir satırın düzeltilmesi
Bu bölümü yeniden seslendirin, sadece o bölüm için ücret ödeyin
Süreci yeniden başlatın, dosya için ödeme yapın
Terminoloji tutarlılığı
Sürümlü sözlükler
Sizin yönettiğiniz ön ve son işlemler
İstek sınırları
Yok
En katı hizmet sağlayıcınızın kuralları
Kataloğun dışında bir dil
Ekibimizle görüşüldü
Her hizmet sağlayıcıya göre değişir
Sıkça Sorulan Sorular

Video çevirisi API'si: Sık sorulan sorular

Aradığınızı bulamadınız mı? Satış departmanıyla iletişime geçin.

Videoları otomatik olarak çeviren bir API var mı?

API erişimini ve API anahtarını nasıl alabilirim?

Video çevirisi API'si ile nasıl kimlik doğrulaması yapabilirim?

API senkron mu yoksa asenkron mu?

İstek sınırları (rate limits) nelerdir?

Videoları kaç farklı dile çevirebilirim?

Tek bir videoyu aynı anda birden fazla dile çevirebilir miyim?

Video çevirisi ne kadar sürer?

Hangi dosya formatları desteklenmektedir?

Çevrilen videonun yanı sıra altyazı da alabiliyor muyum?

Yayınlamadan önce çevrilen metni düzenleyebilir miyim?

ChatGPT bir videoyu çevirebilir mi?

Video çevirisinin maliyeti nedir?

Tek bir öğleden sonra dublaj yapmaya başlayın

İlk isteğinizi bugün oluşturun ve toplu kullanım koşullarına veya kimsenin bilmediği bir dile ihtiyacınız olduğunda bizimle iletişime geçin.