Help:Şablonlar

From mediawiki.org
Jump to navigation Jump to search
This page is a translated version of the page Help:Templates and the translation is 95% complete.
Outdated translations are marked like this.
Other languages:
Bahasa Indonesia • ‎Deutsch • ‎English • ‎Lëtzebuergesch • ‎Napulitano • ‎Nederlands • ‎Tagalog • ‎Tiếng Việt • ‎Türkçe • ‎Zazaki • ‎català • ‎dansk • ‎español • ‎français • ‎hrvatski • ‎italiano • ‎lietuvių • ‎polski • ‎português • ‎português do Brasil • ‎română • ‎slovenčina • ‎suomi • ‎svenska • ‎čeština • ‎беларуская (тарашкевіца)‎ • ‎български • ‎русский • ‎српски / srpski • ‎українська • ‎עברית • ‎اردو • ‎العربية • ‎سنڌي • ‎فارسی • ‎پښتو • ‎ߒߞߏ • ‎भोजपुरी • ‎हिन्दी • ‎বাংলা • ‎ಕನ್ನಡ • ‎മലയാളം • ‎ไทย • ‎中文 • ‎日本語 • ‎ꯃꯤꯇꯩ ꯂꯣꯟ • ‎한국어
PD Not: Bu sayfayı düzenlerken katkınızı CC0 altında yayınlamayı kabul edersiniz. Daha fazla bilgi için Kamu Malı Yardım Sayfalarına bakın.
PD

Birkaç sayfaya eklemek istediğiniz standart metinleriniz varsa, MediaWiki şablon özelliği devreye girer. Uzantılardan ve medya dosyalarından farklı olarak, şablonlar için merkezi bir depo yoktur. Şablonlar yeni yazılabilir veya daha önce yapılmış, başka bir vikiden dışa aktarılan çoğaltma çalışmasını kaydetmek için; Wikipedia ve ardından hedef vikiye aktarılır.

Oluşturma

Şablonlar, içeriği diğer sayfaların içinde yansıtma (gömülü) olacak şekilde tasarlanmış standart viki sayfalarıdır. Şablonlar, adı "Şablon:" ile ön ekli olduğu bir kuralı izleyerek ad alanı; bunun dışında başka bir viki sayfası gibi onları oluşturabilirsin.

Şablonların en basit kullanımı aşağıdaki gibidir. İçeriği olan "Şablon:Hoş geldiniz" adlı bir sayfa oluşturursanız:

Merhaba! Vikiye hoş geldiniz.

ilk şablonunuzu oluşturdunuz! Daha sonra kodu girerseniz:

{{Hoş geldin}}

Başka bir sayfada, o sayfa görüntülendiğinde "Merhaba! Vikiye hoş geldiniz." {{Hoş geldin}} şablon içeriği diğer sayfaya "yansıtır", yani sayfaya entegre edilir.

Ardından, birisini kabul etmek istediğiniz herhangi bir sayfanın herhangi bir yerine {{Hoş geldin}} adresini ekleyebilirsiniz. 100 sayfada kullanıldığını varsayalım. Şablon içeriğini daha sonra değiştirirseniz:

Merhaba! Bu güzel vikiye hoş geldiniz.

ve şablonun kullanıldığı 100 sayfadan herhangi birini tekrar ziyaret ederseniz, orijinal metin yerine yeni metni görürsünüz. Bu şekilde, 100 sayfanın içeriğini düzenlemeden değiştirdiniz, çünkü şablon bu sayfalara yansıtmıştır.

Bu temel mekanizmadır. Bu mekanizmayı zenginleştiren ve şablonları çok kullanışlı kılan birkaç ek yansıtma özelliği vardır.

Kullanım

Şablonlar diğer sayfalarda şu şekillerde kullanılabilir:

  • {{Adı}} — yukarıda açıklandığı gibi, bu bağlantı, şablon bağlantısı olan sayfanın yüklü olduğu zaman, [[Şablon:Adı]]'nı geçerli içeriği ile dinamik olarak değiştirilecektir. Bağlantı, sayfanın kaynağında değişmeden kalacaktır.
  • {{subst:Adı}} — bu şablon bağlantısı kullanıldığında, bağlantıya sahip sayfanın kaydedildi tarihinden itibaren bir kez ve herkes için [[Şablon:Adı]] içeriğiyle değiştirilecektir: [[Şablon:Adı]]'nın içeriğinin bir kopyası, şablon bağlantısı için değiştirilmiş olacaktır. İçerik daha sonra dahil edilen sayfanın bir parçasıdır ve orijinalden ayrı olarak normal şekilde düzenlenebilir. Not: kaynak şablon sayfasındaki daha sonra yapılacak değişiklikler, şablon bağlantısının bulunduğu sayfaya yayılmaz.
  • {{safesubst:Adı}} — bu, yansıtmayı bozmayan değiştirmesine izin vermek için tanıtıldı, en:Help:Substitution#The safesubst: modifier sayfasına bakın.
  • {{msgnw:Adı}} şablonu, onu içeren sayfa getirildiğinde ham viki sözdizimi (<nowiki> gibi) olarak görüntüleyen bir forma ekler.

Aslında, sıradan bir viki sayfası, yalnızca içinde bulunduğu ad alanını belirterek, şablon olarak da kullanılabilir, bu nedenle:

  • {{Şablon:Sayfaadı}}, [[Şablon:Sayfaadı]] dahil eder
  • {{Tartışma:Sayfaadı}}, [[TartışmaSayfaadı]] dahil eder
  • {{:Sayfaadı}}, [[Sayfaadı]] dahil eder
    • {{subst::Sayfaadı}} kendisini [[Sayfaadı]] içeriğiyle değiştirir

Böyle bir ad alanı yoksa, tam başlığın bir şablon olduğu varsayılır:

  • {{Foo:Bar}}, [[Şablon:Foo:Bar]] dahil eder

Parametreler

Kopyalama mekanizmasını zenginleştirmek için MediaWiki, parametrelerin kalıp geçirildiğinde bir şablona geçirilmesine izin verir. Parametreler, şablonun farklı içerikler üretmesine veya farklı davranışlara sahip olmasına izin verir.

Diyelim ki diğer kullanıcıların tartışma sayfasına küçük bir teşekkür notu eklemek istediğinizi varsayalım:

Küçük bir teşekkür... bütün çabalarınız için. sarılır, Ben

Teşekkür notu bir neden (bu durumda, "bütün çabalarınız") ve bir imza ("Ben") olacaktır. Amacınız, herhangi bir kullanıcının herhangi bir nedenle başka bir kullanıcıya teşekkür edebilmesidir.

Notun kullanıldığı her yerde benzer görünmesi için, örneğin Template:Teşekkürler adlı bir şablon tanımlayabilirsiniz. Not, bir kullanıcı başka bir kullanıcıya teşekkür ettiğinde benzer görünmekle birlikte, içeriği (yani nedeni ve imzası) farklı olacaktır. Bu nedenle, bunları parametre olarak iletmelisiniz. Kutuyu biçimlendirmek ve görüntüyü yerleştirmek için kalan öğeleri yoksayarsak, şablonun temel içeriği şu olur:

'''Küçük bir teşekkür...'''
{{{1}}} için.
sarılır, {{{2}}}

{{{1}}} ve {{{2}}} kullanıldığına dikkat edin. Şablonlar içinde, şablon kullanıldığında geçirilecek parametreleri tanımlamanın yolu budur. Şablon içinde, her parametrenin üç parantez içine alındığına dikkat edin: {{{ }}}. Bu normal şablon adı kullanımından farklıdır.

Bir sayfada şablonu kullanırken, bir "dikey çizgi" karakteri (|) ile ayrılmış parametre değerlerini doldurursunuz. MediaWiki, parametrelerin şablona üç şekilde iletilmesine izin verir: Anonim, Numaralı ve Adlandırılmış.

Anonim parametreler

Anonim parametreleri iletmek için, bu parametrelerin değerlerini sırayla listeleyin:

{{Teşekkür|bütün çabalarınız|Ben}}

Bu durumda, {{Teşekkür}} şablonu parametreleri {{{1}}}=bütün çabalarınız ve {{{2}}}=Ben alır, şunu üreten:

Küçük bir teşekkür... bütün çabalarınız için. sarılır, Ben

Anonim parametrelerin aktarılma sırası davranışı için çok önemlidir. Parametrelerin sırasını tersine çevirmek, şöyle:

{{Teşekkür|Ben|bütün çabalarınız}}

bu sonucu üretir:

Küçük bir teşekkür... Ben için. sarılır, bütün çabalarınız

Parametreleri siparişe göre tanımlamak ({{{1}}}, vb.) anonim parametrelerle "sadece" çalışır. Aşağıda gösterildiği gibi adla tanımlanan hiçbir parametreye sıra numaraları kullanılarak şablona erişilemez.
Anonim bir şablon parametresinin bağımsız değişkeninin içinde eşittir işareti görünürse, bu parametre eşittir işaretinden önceki metni parametre adı olarak ele alarak adlandırılmış parametre olarak yanlış yorumlanabilir ve bağımsız değişken değeri olarak sonraki metni. Harici bir bağlantı veya niteliklere sahip bir HTML öğesi eklemeniz gerektiğinde bu yaygın bir sorundur (Görev 16235 sayfasına bakın). Çözüm, bunun yerine adlandırılmış parametreleri, hatta aşağıdaki bölümde açıklandığı gibi numaralandırılmış parametreleri kullanmaktır.

Numaralı parametreler

Parametreleri sayıya göre geçirmek için, her parametreyi geçerken tanımlayın:

{{Teşekkür|2=Ben|1=senin arkadaşlığın}}

Bu sefer, {{Teşekkür}} şablonu {{{1}}}=senin arkadaşlığın ve {{{2}}}=Ben parametreleri alır, ancak ters sırada sağlandıklarından ve ürettiklerinden: Küçük bir teşekkür... senin arkadaşlığın için. sarılır, Ben

Bu numaralandırılmış parametrelerden herhangi biri "=" işareti içerdiğinde de yararlı olabilir.
Örnekler
{{Thankyou|1=adding “=”|2=Me}}
üretir
Küçük bir teşekkür...

“=” eklediği için. sarılır, Ben

Uyarı Uyarı: Bu, birbirlerinin parametrelerini numaralandırmayı da gerektirir.

Adlandırılan parametreler

Parametreleri iletmenin üçüncü yolu sayılar yerine ada göre yapılır. Bu durumda, şablon içeriği şu şekilde değiştirilir:

'''Küçük bir teşekkür...'''
{{{sebep}}} için.
sarılır, {{{imza}}}

Şablon içinde, her parametreyi bir sayı yerine tanımlamak için {{{sebep}}} ve {{{imza}}} kullanırız. Bu parametreleri ada göre geçirmek için, geçerken her parametreyi tanımlayın:

{{Teşekkür|imza=Ben|sebep=olduğun kişi olmak}}

Bu durumda, {{Teşekkür}} şablonu {{{sebep}}}=olduğun kişi olmak parametreleri alır ve {{{imza}}}=Ben şunu üretir:

Küçük bir teşekkür... olduğun kişi olmak için. sarılır, Ben

Adlandırılmış parametreler büyük/küçük harfe duyarlıdır, bu nedenle:

{{Teşekkür|imza=Ben|Sebep=olduğun kişi olmak|reason=büyük/küçük harfe duyarlı olma}}

şunu üretir: Küçük bir teşekkür... büyük/küçük harfe duyarlı olma için. sarılır, Ben

Şablonunuzda adlandırılmış parametreleri kullanmanın avantajı, sıra parametrelerinde geçirilebilen esnekliğin yanı sıra, çok sayıda parametre olup olmadığını anlamak için şablon kodunu daha kolay hale getirmesidir.

Varsayılan değerler

Parametreleri bekleyen ancak bağımsız değişkenlerini bu şekilde sağlamayan bir şablonu aşarsanız:

{{Teşekkür}}

yukarıdaki numaralandırılmış parametreler örneğinde aşağıdakileri elde edersiniz:

Küçük bir teşekkür... {{{1}}} için. sarılır, {{{2}}}

Hiçbir argüman iletilmediğinden, şablon parametreleri kendi değerleri yerine kendileri sunar. Bu durumlarda, parametreler için varsayılan değerlerin, yani herhangi bir değer geçirilmezse kullanılacak değerlerin tanımlanması yararlı olabilir. Örneğin, şablon içeriği şu şekilde değiştirilirse:

'''Küçük bir teşekkür...'''
{{{sebep|her şey}}} için.
sarılır, {{{imza|Ben}}}

sonra {{{sebep|her şey}}}, {{{sebep}}} parametresi için bağımsız değişken sağlanmadıysa, her şey değeri kullanılır. Benzer şekilde {{{imza|Ben}}}, Ben değerini varsayılan {{{imza}}} parametresiyle değiştirir. Şimdi, herhangi bir argüman iletmeden şablonu tekrar transkript etmek aşağıdakileri sağlar: Küçük bir teşekkür... her şey için. sarılır, Ben

Often default values are used to specify alternate names of parameters. For example, if you have {{{a|{{{b|}}} }}}, the template will first look for a parameter named "a". If it is not set, it will use the parameter named "b". If neither "a" nor "b" is set, it will output nothing.

Evaluation

This is an advanced topic which you can skip unless you need it

Generally speaking, template parameters are substituted into the template after tokenization, but as is. They are not evaluated until they are used.

This has a few consequences. First of all, if you have a Template:Start containing {{mytemplate, and a Template:End containing |foo=bar}}, and put {{start}}{{end}} on a page, mytemplate isn't transcluded, because tokens like "|" cannot be added by a template and keep their special meaning in templates. You can still use templates to control the name of a parameter or template, but you cannot split a template call amongst multiple templates.

The second consequence of this is dead-code elimination. If you make a template call like {{ #foreach: foo$n$_bar | foo$n$_bar = {{{foo$n$_bar}}}
}}
, and Template:Foo does not contain {{{1}}}, then the displaytitle is not used, since it is only evaluated when needed, and it there is no parameter to substitute it into, so it is never evaluated. This usually comes into play when using Extension:ParserFunctions, and can be especially noticed when used in combination with the int: magic word that varies by user language.

Template calls starting with the magic word subst: or safesubst: are evaluated in a separate first pass that only happens at save time, along with ~~~~ and links using the pipe trick. If they cannot be evaluated during the first pass, subst: calls are ignored, and safesubst: are treated as if a normal template.

Many but not all parser functions, parser tags and trancluded special pages are not directly included like templates but instead are replaced by a "strip marker". This means you cannot manipulate the results with parser functions like padleft: or similar functions from extensions, as they see the strip marker instead of the result of the parser function.

Şablonlarda özyineleme

Kendi başına bir şablon eklemek MediaWiki'yi sonsuz özyinelemeye atmaz. MediaWiki şablonun adı kalın yazıyla özyinelemeyi durduracaktır. Örneğin, "Şablon:Aaaa" içeriği "{{Aaaa}}" ise, "Template:Aaaa" olarak gösterilir ve Şablon döngüsü algılandı: Şablon:Aaaa görüntülenir.

Kontrol şablonu dahil etme

Varsayılan olarak, hem doğrudan görüntülendiğinde hem de başka bir sayfaya dahil edildiğinde bir şablonun içeriği bütünüyle görüntülenir. Ancak, <noinclude>, <includeonly> ve <onlyinclude> etiketlerini kullanarak bir şablonun hangi bölümlerinin görüneceğini ve içerileceğini kontrol edebilirsiniz.

<noinclude> ile </noinclude> arasındaki herhangi bir şey yalnızca şablonun sayfası doğrudan görüntülendiğinde görülür, ancak başka bir sayfaya eklendiğinde görülmez. Bu, şablonu içeren herhangi bir sayfaya yaymak istemediğiniz bir şablona metin veya kod eklemek istediğinizde yararlıdır:

  • Kategori, şablonun kendisini kategorilere ayırırken bağlanır
  • Diller arası bağlantılar diğer dillerde benzer şablonlara
  • Şablonun nasıl kullanılacağı hakkında açıklayıcı metin

Benzer şekilde, <includeonly> ile </includeonly> arasındaki herhangi bir şey işlenir ve yalnızca sayfa eklenirken görüntülenir, ancak şablon sayfası doğrudan görüntülendiğinde gösterilmez ve aşağıdaki gibi durumlarda yararlıdır:

  • Kategorize şablonu içeren sayfalar. Not: bir şablon tarafından bu şekilde uygulanan kategoriler değiştirilirken, bu şablonu içeren sayfaların kategorisi bir süre sonraya kadar güncellenmeyebilir: bu, iş sırası tarafından işlenir. Belirli bir sayfanın yeniden kategorize edilmesini zorlamak için, o sayfayı düzenlemek üzere açın ve değişiklik yapmadan kaydedin.
  • Şablon sayfasını görüntülerken şablon kodunun yürütülmemesini sağlamaktır. Genellikle bunun nedeni parametreleri beklemesidir ve parametresiz yürütülmesinin istenmeyen bir sonucu vardır.

<noinclude> ve <includeonly> dışındaki her şey normal şekilde işlenir ve görüntülenir; yani hem şablon sayfası doğrudan görüntülendiğinde hem de şablon başka bir sayfaya dahil edildiğinde. Odak bu iki etiketin içinde var.

<onlyinclude> etiketlerinin dışındaki her şey ekleme işleminde atılır. Dahil olarak etiketlenmiş bölümler bile yalnızca içerme olarak etiketlenmedikleri sürece ekleme işleminde atılır. Odak bu etiketin dışında olan şeydir.

Bu etiketlerin iç içe yerleştirilmesi de mümkündür.

Üç kısmi ekleme etiketi, işlenen ve oluşturulan öğelerin tüm olası kombinasyonlarını etkinleştirir. Yorumlar da bir rolü doldurur.

Şablonları düzenleme

Şablonların etkili olabilmesi için kullanıcıların bunları bulmaları ve nasıl kullanacaklarını öğrenmeleri gerekir.

Bunları bulmak için kullanıcılar şunları yapabilir:

  1. Özel sayfalar > Tüm sayfalar tıklayın
  2. Ad alanı: listesinde, Şablon seçin ve Git tıklayın.

Kullanım bilgileri vermek için şablon sayfasına bunun gibi bir örnek ekleyin:

<noinclude>
== Kullanım ==
Karşılama kullanıcıları:
{{Teşekkür|sebep=senin sebebin|imzan=senin imzan}}
</noinclude>

Ardından, bir düzenleyici şablonu kullanmak için örneği kopyalayıp yapıştırabilir.

Bir şablona bağlantı verme

Bir şablon sayfası diğer viki sayfalarına benzer şekilde bağlanabilir. Örneğin, Template:Navbar bağlantısı vikikod {{ll|Template:Navbar|Template:Navbar}} kullanılarak oluşturulur.

Birçok vikide, Şablon:Tl, şablonu gerçekten transkripsiyon yapmadan transkript etmek için gerekli olan "çift kıvırcık kaşlı ayraçlar" vikikodunu gösterecek şekilde biçimlendirilmiş bir şablona bağlantı sağlamak için kullanılabilir. Örneğin, {{Navbar}} bağlantısını oluşturmak için {{tl|Navbar}} kodu kullanılabilir.

Bu yapı, şablon belgelerinde, yardım sayfalarında ve şablonlara atıfta bulunurken konuşma sayfalarında yaygın olarak kullanılır. Aynı etki, <code>{{[[Template:Navbar|Navbar]]}}, ancak {{tl}} yaklaşım çok daha az yazmayı içerir. Herhangi bir vikide, varsa Tl şablonu metni burada gösterildiği gibi bir "kod" öğesinde oluşturabilir veya oluşturmayabilir. Değilse, benzer şekilde adlandırılmış başka bir şablon bunu yapabilir. Örneğin, Türkçe Vikipedi'deki tr:Şablon:Şb belgelerinin "Ayrıca bakınız" bölümüne bakın. The same effect can be achieved by using {{Navbar}}, but the {{tl}} approach involves much less typing. On any given wiki the Tl template, if it exists, may or may not render the text in a "code" element, as shown here. If not, another similarly named template may do so. See, for example, the "See also" section of the documentation of en:Template:Tl at the English Wikipedia.

Bir vikiden diğerine kopyalama

Şablonlar genellikle CSS veya başka şablonlar gerektirir; Aşağıdaki adımlar çoğu şablon için geçerli olmalıdır.

MediaWiki kodu

Yeni vikide içe aktarma haklarınız varsa (Özellikle içe aktarma):

  1. Orijinal vikide Special:Export gidin ve aşağıdaki tüm gerekli şablonların geçmişini içeren bir .xml dosyası indirin:
  2. * Büyük metin kutusuna şablonun adını girin, ör. "Şablon:Hoşgeldin". Büyük/küçük harflere ve özel karakterlere özellikle dikkat edin - şablon adı tam olarak doğru değilse, dışa aktarma yine de gerçekleşebilir, ancak .xml dosyası beklenen verilere sahip olmaz.
    • "Şablonları dahil et" kutusunu işaretleyin.
    • "Geçmiş revizyonları almadan yalnızca son sürümü al" kutusunun işaretini kaldırın.
    • "Dışa aktar" tıklayın.
  3. Yeni vikide Special:Import'a gidin ve .xml dosyasını yükleyin.

Yeni vikide içe aktarma haklarınız yoksa:

  1. Orijinal vikiden kopyalamak istediğiniz şablona gidin. Düzenleme sayfasına gidin ve tüm vikimetnini kopyalayın
  2. Yeni vikide kopyaladığınız şablonla aynı ada sahip sayfaya gidin. Kopyaladığınız vikimetnini oluştur/düzenle ve yapıştır'a basın. Her şablonun düzenleme özetinde, ilişkilendirme için orijinal sayfaya bağlantı verin.
  3. Düzenleme penceresindeki orijinal vikide, düzenleme kutusunun altında, "Bu sayfada kullanılan şablonlar" listesine bakın. Listelenen her şablon için bu talimatları izleyin. Ayrıca bu şablonlardan herhangi biri tarafından kullanılan herhangi bir şablon yapın.

Bu gerekli tüm kodu kopyalar ve bazı şablonlar için yeterli olur. Çalışmazsa, düzenleme kutusunun altındaki "Bu sayfanın geçerli sürümüne aktarılan sayfalar:" altında listelenen kırmızı bağlantıları da kontrol edin. Bunlar için yukarıdaki adımları da tekrarlayın ve modüllerdeki kodu da kopyalayın.

Şablonu ve tüm bağlantılı şablonlarını diğer vikiden başarıyla içe aktardıktan sonra, vikinize uyacak şekilde özelleştirmeleri değiştirmek için düzenleyin. Örneğin, bir logoyu değiştirmek için gereksiz kategorileri veya kırmızı bağlantıları kaldırın.

Uzantılar

Şablonlarda sıklıkla kullanılan bir uzantı ParserFunctions'dır. Extension:ParserFunctions sayfasını ziyaret edin ve orada listelenen işlevlerden herhangi birinin kopyaladığınız şablonlarda kullanılıp kullanılmadığını kontrol edin. Öyleyse, ParserFunctions uzantısını yüklemeniz gerekir. Yüklemek için, MediaWiki kurulumunuzun sunucusuna sistem yöneticisi erişimine ihtiyacınız olacaktır.

Şablonlarda, özellikle Wikipedia'da kullanılabilecek bir başka bağımlılık da Lua. Şablon kodunda {{#invoke: }} yapmak bunun için iyi bir işarettir. Kullanılması durumunda, Scribunto uzantısını yüklemeniz gerekir ve sistem yöneticisi erişimi de gereklidir. Uzantıyı yükleme ve kullanma hakkında daha fazla talimat için bu sayfaya bakın.

CSS ve JavaScript kodu

MediaWiki kodunun yanı sıra, birçok şablon CSS'den yararlanır ve bazıları tam olarak çalışması için JavaScript'e güvenir. Kopyalanan şablonlar beklendiği gibi davranmıyorsa, nedeni bu olabilir. Gerekli CSS ve JavaScript'i vikinize kopyalamak için normalde yönetici ayrıcalıklarına sahip olmanız gerekir, çünkü "MediaWiki:" ad alanında sistem mesajlarını düzenleyeceksiniz.

  1. Şablon metninde CSS sınıflarının (class="foobar" gibi metin) kullanımını arayın. Bu sınıflar orijinal vikideki "MediaWiki:Common.css" veya "MediaWiki:Monobook.css" klasörlerinde görünüyorsa, bu sınıfları yeni vikideki "MediaWiki:Common.css" klasörüne kopyalayın ve şablonun şimdi iyi olup olmadığını kontrol edin.
  2. Kopyalanan şablon hala beklendiği gibi çalışmıyorsa, orijinal vikide "MediaWiki:Common.js" veya "MediaWiki:Monobook.js" de kod olup olmadığını kontrol edin. Öyleyse, yeni vikide "MediaWiki:Common.js" dosyasına kopyalamayı deneyebilirsiniz. Normalde, yalnızca güvenilir kaynaklardan kod kopyalamak ve önce ilgili parçaları tanımlamak ve seçmek için koda göz atmak iyi bir fikirdir. Her parçanın işlevselliğini tanımlamak için ipucu olabilecek yorumları bulabilirsiniz.

Ayrıca bakınız

Dış bağlantılar