Skip to content

Commit

Permalink
docs: Turkish translation (#654)
Browse files Browse the repository at this point in the history
* Add Turkish translated docs files

---------

Co-authored-by: Kévin Dunglas <kevin@dunglas.fr>
  • Loading branch information
mertingen and dunglas authored Mar 13, 2024
1 parent 7b4f34d commit 6a3db94
Show file tree
Hide file tree
Showing 20 changed files with 1,478 additions and 8 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ Go to `https://localhost`, and enjoy!

> [!TIP]
>
> Do not attempt to use `https://127.0.0.1`. Use `localhost` and accept the self-signed certificate.
> Do not attempt to use `https://127.0.0.1`. Use `https://localhost` and accept the self-signed certificate.
> Use the [`SERVER_NAME` environment variable](docs/config.md#environment-variables) to change the domain to use.
### Standalone Binary
Expand Down
2 changes: 1 addition & 1 deletion docs/cn/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ docker run -v $PWD:/app/public \

> [!TIP]
>
> 不要尝试使用 `https://127.0.0.1`。使用 `localhost` 并接受自签名证书。
> 不要尝试使用 `https://127.0.0.1`。使用 `https://localhost` 并接受自签名证书。
> 使用 [`SERVER_NAME` 环境变量](config.md#环境变量) 更改要使用的域。
### 独立二进制
Expand Down
5 changes: 4 additions & 1 deletion docs/cn/production.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@ volumes:
```
> [!NOTE]
>
> 前面的示例适用于生产用途。
> 在开发中,你可能希望使用挂载目录,不同的 PHP 配置和不同的 `SERVER_NAME` 环境变量值。
>
Expand Down Expand Up @@ -104,7 +105,8 @@ DigitalOcean 域服务示例(“Networking” > “Domains”):

![在 DigitalOcean 上配置 DNS](../digitalocean-dns.png)

> [!NOTE]
> [!NOTE]
>
> Let's Encrypt 是 FrankenPHP 默认用于自动生成 TLS 证书的服务,不支持使用裸 IP 地址。使用域名是使用 Let's Encrypt 的必要条件。

## 部署
Expand All @@ -129,6 +131,7 @@ docker compose up -d --wait
去 `https://your-domain-name.example.com` 享受吧!

> [!CAUTION]
>
> Docker 有一个缓存层,请确保每个部署都有正确的构建,或者使用 --no-cache 选项重新构建项目以避免缓存问题。

## 在多个节点上部署
Expand Down
2 changes: 1 addition & 1 deletion docs/fr/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ Rendez-vous sur `https://localhost`, c'est parti !

> [!TIP]
>
> Ne tentez pas d'utiliser `https://127.0.0.1`. Utilisez localhost et acceptez le certificat auto-signé.
> Ne tentez pas d'utiliser `https://127.0.0.1`. Utilisez `https://localhost` et acceptez le certificat auto-signé.
> Utilisez [la variable d'environnement `SERVER_NAME`](config.md#environment-variables) pour changer le domaine à utiliser.
### Binaire autonome
Expand Down
7 changes: 5 additions & 2 deletions docs/fr/production.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,8 @@ volumes:
caddy_config:
```
> [!NOTE]
> [!NOTE]
>
> Les exemples précédents sont destinés à une utilisation en production.
> En développement, vous pourriez vouloir utiliser un volume, une configuration PHP différente et une valeur différente pour la variable d'environnement `SERVER_NAME`.
>
Expand Down Expand Up @@ -103,7 +104,8 @@ Exemple avec le service DigitalOcean Domains ("Networking" > "Domains") :

![Configurer les DNS sur DigitalOcean](../digitalocean-dns.png)

> [!NOTE]
> [!NOTE]
>
> Let's Encrypt, le service utilisé par défaut par FrankenPHP pour générer automatiquement un certificat TLS, ne prend pas en charge l'utilisation d'adresses IP nues. L'utilisation d'un nom de domaine est obligatoire pour utiliser Let's Encrypt.

## Déploiement
Expand All @@ -128,6 +130,7 @@ Votre serveur est opérationnel, et un certificat HTTPS a été automatiquement
Rendez-vous sur `https://your-domain-name.example.com` !

> [!CAUTION]
>
> Docker peut avoir une couche de cache, assurez-vous d'avoir la bonne version de build pour chaque déploiement ou reconstruisez votre projet avec l'option `--no-cache` pour éviter les problèmes de cache.

## Déploiement sur Plusieurs Nœuds
Expand Down
7 changes: 5 additions & 2 deletions docs/production.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,8 @@ volumes:
caddy_config:
```
> [!NOTE]
> [!NOTE]
>
> The previous examples are intended for production usage.
> In development, you may want to use a volume, a different PHP configuration and a different value for the `SERVER_NAME` environment variable.
>
Expand Down Expand Up @@ -104,7 +105,8 @@ Example with the DigitalOcean Domains service ("Networking" > "Domains"):

![Configuring DNS on DigitalOcean](digitalocean-dns.png)

> [!NOTE]
> [!NOTE]
>
> Let's Encrypt, the service used by default by FrankenPHP to automatically generate a TLS certificate doesn't support using bare IP addresses. Using a domain name is mandatory to use Let's Encrypt.

## Deploying
Expand All @@ -129,6 +131,7 @@ Your server is up and running, and a HTTPS certificate has been automatically ge
Go to `https://your-domain-name.example.com` and enjoy!

> [!CAUTION]
>
> Docker can have a cache layer, make sure you have the right build for each deployment or rebuild your project with `--no-cache` option to avoid cache issue.

## Deploying on Multiple Nodes
Expand Down
203 changes: 203 additions & 0 deletions docs/tr/CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,203 @@
# Katkıda Bulunmak

## PHP Derleme

### Docker ile (Linux)

Geliştirme Ortamı için Docker İmajını Oluşturun:

```console
docker build -t frankenphp-dev -f dev.Dockerfile .
docker run --cap-add=SYS_PTRACE --security-opt seccomp=unconfined -p 8080:8080 -p 443:443 -p 443:443/udp -v $PWD:/go/src/app -it frankenphp-dev
```

İmaj genel geliştirme araçlarını (Go, GDB, Valgrind, Neovim...) içerir.

Docker sürümü 23.0'dan düşükse, derleme dockerignore [pattern issue](https://github.com/moby/moby/pull/42676) tarafından başarısız olur. Dizinleri `.dockerignore` dosyasına ekleyin.

```patch
!testdata/*.php
!testdata/*.txt
+!caddy
+!C-Thread-Pool
+!internal
```

### Docker olmadan (Linux ve macOS)

[Kaynaklardan derlemek için talimatları izleyin](https://frankenphp.dev/docs/compile/) ve `--debug` yapılandırma seçeneğini geçirin.

## Test senaryolarını çalıştırma

```console
go test -race -v ./...
```

## Caddy modülü

FrankenPHP Caddy modülü ile Caddy'yi oluşturun:

```console
cd caddy/frankenphp/
go build
cd ../../
```

Caddy'yi FrankenPHP Caddy modülü ile çalıştırın:

```console
cd testdata/
../caddy/frankenphp/frankenphp run
```

Sunucu `127.0.0.1:8080` adresini dinliyor:

```console
curl -vk https://localhost/phpinfo.php
```

## Minimal test sunucusu

Minimal test sunucusunu oluşturun:

```console
cd internal/testserver/
go build
cd ../../
```

Test sunucusunu çalıştırın:

```console
cd testdata/
../internal/testserver/testserver
```

Sunucu `127.0.0.1:8080` adresini dinliyor:

```console
curl -v http://127.0.0.1:8080/phpinfo.php
```

## Docker İmajlarını Yerel Olarak Oluşturma

Bake (pişirme) planını yazdırın:

```console
docker buildx bake -f docker-bake.hcl --print
```

Yerel olarak amd64 için FrankenPHP görüntüleri oluşturun:

```console
docker buildx bake -f docker-bake.hcl --pull --load --set "*.platform=linux/amd64"
```

Yerel olarak arm64 için FrankenPHP görüntüleri oluşturun:

```console
docker buildx bake -f docker-bake.hcl --pull --load --set "*.platform=linux/arm64"
```

FrankenPHP imajlarını arm64 ve amd64 için sıfırdan oluşturun ve Docker Hub'a gönderin:

```console
docker buildx bake -f docker-bake.hcl --pull --no-cache --push
```

## Statik Derlemelerle Segmentasyon Hatalarında Hata Ayıklama

1. FrankenPHP binary dosyasının hata ayıklama sürümünü GitHub'dan indirin veya hata ayıklama seçeneklerini kullanarak özel statik derlemenizi oluşturun:

```console
docker buildx bake \
--load \
--set static-builder.args.DEBUG_SYMBOLS=1 \
--set "static-builder.platform=linux/amd64" \
static-builder
docker cp $(docker create --name static-builder dunglas/frankenphp:static-builder):/go/src/app/dist/frankenphp-linux-$(uname -m) frankenphp
```

2. Mevcut `frankenphp` sürümünüzü hata ayıklama FrankenPHP çalıştırılabilir dosyasıyla değiştirin
3. FrankenPHP'yi her zamanki gibi başlatın (alternatif olarak FrankenPHP'yi doğrudan GDB ile başlatabilirsiniz: `gdb --args ./frankenphp run`)
4. GDB ile sürece bağlanın:

```console
gdb -p `pidof frankenphp`
```

5. Gerekirse, GDB kabuğuna `continue` yazın
6. FrankenPHP'nin çökmesini sağlayın
7. GDB kabuğuna `bt` yazın
8. Çıktıyı kopyalayın

## GitHub Eylemlerinde Segmentasyon Hatalarında Hata Ayıklama

1. `.github/workflows/tests.yml` dosyasını açın
2. PHP hata ayıklama seçeneklerini etkinleştirin

```patch
- uses: shivammathur/setup-php@v2
# ...
env:
phpts: ts
+ debug: true
```

3. Konteynere bağlanmak için `tmate`i etkinleştirin

```patch
-
name: Set CGO flags
run: echo "CGO_CFLAGS=$(php-config --includes)" >> "$GITHUB_ENV"
+ -
+ run: |
+ sudo apt install gdb
+ mkdir -p /home/runner/.config/gdb/
+ printf "set auto-load safe-path /\nhandle SIG34 nostop noprint pass" > /home/runner/.config/gdb/gdbinit
+ -
+ uses: mxschmitt/action-tmate@v3
```

4. Konteynere bağlanın
5. `frankenphp.go` dosyasını açın
6. `cgosymbolizer`'ı etkinleştirin

```patch
- //_ "github.com/ianlancetaylor/cgosymbolizer"
+ _ "github.com/ianlancetaylor/cgosymbolizer"
```

7. Modülü indirin: `go get`
8. Konteynerde GDB ve benzerlerini kullanabilirsiniz:

```console
go test -c -ldflags=-w
gdb --args ./frankenphp.test -test.run ^MyTest$
```

9. Hata düzeltildiğinde, tüm bu değişiklikleri geri alın

## Misc Dev Resources

* [uWSGI içine PHP gömme](https://github.com/unbit/uwsgi/blob/master/plugins/php/php_plugin.c)
* [NGINX Unit'te PHP gömme](https://github.com/nginx/unit/blob/master/src/nxt_php_sapi.c)
* [Go (go-php) içinde PHP gömme](https://github.com/deuill/go-php)
* [Go'da PHP gömme (GoEmPHP)](https://github.com/mikespook/goemphp)
* [C++'da PHP gömme](https://gist.github.com/paresy/3cbd4c6a469511ac7479aa0e7c42fea7)
* [Sara Golemon tarafından PHP'yi Genişletme ve Yerleştirme](https://books.google.fr/books?id=zMbGvK17_tYC&pg=PA254&lpg=PA254#v=onepage&q&f=false)
* [TSRMLS_CC de neyin nesi?](http://blog.golemon.com/2006/06/what-heck-is-tsrmlscc-anyway.html)
* [Mac'te PHP gömme](https://gist.github.com/jonnywang/61427ffc0e8dde74fff40f479d147db4)
* [SDL bağları](https://pkg.go.dev/github.com/veandco/go-sdl2@v0.4.21/sdl#Main)

## Docker ile İlgili Kaynaklar

* [Pişirme (bake) dosya tanımı](https://docs.docker.com/build/customize/bake/file-definition/)
* [docker buildx build](https://docs.docker.com/engine/reference/commandline/buildx_build/)

## Faydalı Komut

```console
apk add strace util-linux gdb
strace -e 'trace=!futex,epoll_ctl,epoll_pwait,tgkill,rt_sigreturn' -p 1
```
77 changes: 77 additions & 0 deletions docs/tr/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
# FrankenPHP: PHP için Modern Uygulama Sunucusu

<h1 align="center"><a href="https://frankenphp.dev"><img src="frankenphp.png" alt="FrankenPHP" width="600"></a></h1>

FrankenPHP, [Caddy](https://caddyserver.com/) web sunucusunun üzerine inşa edilmiş PHP için modern bir uygulama sunucusudur.

FrankenPHP, çarpıcı özellikleri sayesinde PHP uygulamalarınıza süper güçler kazandırır: [Early Hints*](https://frankenphp.dev/docs/early-hints/), [worker modu](https://frankenphp.dev/docs/worker/), [real-time yetenekleri](https://frankenphp.dev/docs/mercure/), otomatik HTTPS, HTTP/2 ve HTTP/3 desteği...

FrankenPHP herhangi bir PHP uygulaması ile çalışır ve worker modu ile resmi entegrasyonları sayesinde Laravel ve Symfony projelerinizi her zamankinden daha performanslı hale getirir.

FrankenPHP, PHP'yi `net/http` kullanarak herhangi bir uygulamaya yerleştirmek için bağımsız bir Go kütüphanesi olarak da kullanılabilir.

[*Frankenphp.dev*](https://frankenphp.dev) adresinden ve bu slayt üzerinden daha fazlasını öğrenin:

<a href="https://dunglas.dev/2022/10/frankenphp-the-modern-php-app-server-written-in-go/"><img src="https://dunglas.dev/wp-content/uploads/2022/10/frankenphp.png" alt="Slides" width="600"></a>

## Başlarken

### Docker

```console
docker run -v $PWD:/app/public \
-p 80:80 -p 443:443 -p 443:443/udp \
dunglas/frankenphp
```

`https://localhost` adresine gidin ve keyfini çıkarın!

> [!TIP]
>
> `https://127.0.0.1` kullanmaya çalışmayın. `https://localhost` kullanın ve kendinden imzalı sertifikayı kabul edin.
> Kullanılacak alan adını değiştirmek için [`SERVER_NAME` ortam değişkenini](docs/config.md#environment-variables) kullanın.
### Binary Çıktısı

Docker kullanmayı tercih etmiyorsanız, Linux ve macOS için bağımsız FrankenPHP binary dosyası sağlıyoruz
[PHP 8.3](https://www.php.net/releases/8.3/en.php) ve en popüler PHP eklentilerini de içermekte: [FrankenPHP](https://github.com/dunglas/frankenphp/releases) indirin

Geçerli dizinin içeriğini başlatmak için çalıştırın:

```console
./frankenphp php-server
```

Ayrıca aşağıdaki tek komut satırı ile de çalıştırabilirsiniz:

```console
./frankenphp php-cli /path/to/your/script.php
```

## Docs

* [Worker modu](https://frankenphp.dev/docs/worker/)
* [Early Hints desteği (103 HTTP durum kodu)](https://frankenphp.dev/docs/early-hints/)
* [Real-time](https://frankenphp.dev/docs/mercure/)
* [Konfigürasyon](https://frankenphp.dev/docs/config/)
* [Docker imajları](https://frankenphp.dev/docs/docker/)
* [Production'a dağıtım](docs/production.md)
* [**Bağımsız** kendiliğinden çalıştırılabilir PHP uygulamaları oluşturma](https://frankenphp.dev/docs/embed/)
* [Statik binary'leri oluşturma](https://frankenphp.dev/docs/static/)
* [Kaynak dosyalarından derleme](https://frankenphp.dev/docs/compile/)
* [Laravel entegrasyonu](https://frankenphp.dev/docs/laravel/)
* [Bilinen sorunlar](https://frankenphp.dev/docs/known-issues/)
* [Demo uygulama (Symfony) ve kıyaslamalar](https://github.com/dunglas/frankenphp-demo)
* [Go kütüphane dokümantasonu](https://pkg.go.dev/github.com/dunglas/frankenphp)
* [Katkıda bulunma ve hata ayıklama](https://frankenphp.dev/docs/contributing/)

## Örnekler ve İskeletler

* [Symfony](https://github.com/dunglas/symfony-docker)
* [API Platform](https://api-platform.com/docs/distribution/)
* [Laravel](https://frankenphp.dev/docs/laravel/)
* [Sulu](https://sulu.io/blog/running-sulu-with-frankenphp)
* [WordPress](https://github.com/dunglas/frankenphp-wordpress)
* [Drupal](https://github.com/dunglas/frankenphp-drupal)
* [Joomla](https://github.com/alexandreelise/frankenphp-joomla)
* [TYPO3](https://github.com/ochorocho/franken-typo3)
Loading

0 comments on commit 6a3db94

Please sign in to comment.