<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="cy">
	<id>https://hedyn.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Stanno</id>
	<title>Hedyn - Cyfraniadau&#039;r defnyddiwr [cy]</title>
	<link rel="self" type="application/atom+xml" href="https://hedyn.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Stanno"/>
	<link rel="alternate" type="text/html" href="https://hedyn.net/wici/Arbennig:Contributions/Stanno"/>
	<updated>2026-04-29T06:13:35Z</updated>
	<subtitle>Cyfraniadau&amp;#039;r defnyddiwr</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>https://hedyn.net/index.php?title=Prosesu_treigladau_gyda_meddalwedd&amp;diff=3864</id>
		<title>Prosesu treigladau gyda meddalwedd</title>
		<link rel="alternate" type="text/html" href="https://hedyn.net/index.php?title=Prosesu_treigladau_gyda_meddalwedd&amp;diff=3864"/>
		<updated>2012-10-07T13:53:16Z</updated>

		<summary type="html">&lt;p&gt;Stanno: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Esboniad ==&lt;br /&gt;
&lt;br /&gt;
Mae angen cod agored i adnabod treigladau. Byddai gymaint o bosibiliadau!&lt;br /&gt;
&lt;br /&gt;
Dw i eisiau datblygu ategyn WordPress i ychwanegu treigladau cywir i chwilio. Ar hyn o bryd mae angen chwilio am &#039;Caer&#039;, &#039;Gaer&#039;, &#039;Nghaer&#039; ar wahan. Gyda&#039;r ategyn byddai modd chwilio am un ohnonyn nhw yn unig a derbyn canlyniadau gyda phob fersiwn. &lt;br /&gt;
&lt;br /&gt;
Felly... os ydyn ni&#039;n gallu sgwennu ffug-cod gyda&#039;n gilydd byddai modd sgwennu&#039;r ategyn a rhyddhau&#039;r cod dan [[Trwydded gyhoeddus gyffredinol GNU (GPL yn Gymraeg)| GPL]].&lt;br /&gt;
&lt;br /&gt;
Er mwyn cael prosiect haws:&lt;br /&gt;
* Efallai gwnawn ni ddechrau gyda&#039;r fersiwn &#039;geiriadur&#039; o&#039;r gair yn unig - yn yr enghraifft mae pobl yn debygol i chwilio am &#039;Caer&#039; yn hytrach nag unrhyw fersiwn arall.&lt;br /&gt;
* Anghofia gwrywaidd a benywaidd ar hyn o bryd (byddai angen rhestr o eiriau fel arall)&lt;br /&gt;
&lt;br /&gt;
O&#039;n i&#039;n meddwl bod system gyda http://kevindonnelly.org.uk/ ond dw i&#039;n methu ffeindio fe. Hefyd bydda&#039;r broses datblygu yn hwyl!&lt;br /&gt;
--[[Defnyddiwr:Carlmorris|Carlmorris]] ([[Sgwrs Defnyddiwr:Carlmorris|sgwrs]]) 20:20, 5 Hydref 2012 (BST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Y treigladau ==&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #efefef;&amp;quot;&lt;br /&gt;
! Llythyren&lt;br /&gt;
! Meddal&lt;br /&gt;
! Trwynol&lt;br /&gt;
! Llais&lt;br /&gt;
! H-bom&lt;br /&gt;
|-&lt;br /&gt;
| p&lt;br /&gt;
| b&lt;br /&gt;
| mh&lt;br /&gt;
| ph&lt;br /&gt;
|-&lt;br /&gt;
| t&lt;br /&gt;
| d&lt;br /&gt;
| nh&lt;br /&gt;
| th&lt;br /&gt;
|-&lt;br /&gt;
| c&lt;br /&gt;
| g&lt;br /&gt;
| ngh&lt;br /&gt;
| ch&lt;br /&gt;
|-&lt;br /&gt;
| b&lt;br /&gt;
| f&lt;br /&gt;
| m&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| d&lt;br /&gt;
| dd&lt;br /&gt;
| n&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| g&lt;br /&gt;
| /hwyl fawr g/&lt;br /&gt;
| ng&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| m&lt;br /&gt;
| f&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| ll&lt;br /&gt;
| l&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rh&lt;br /&gt;
| r&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| aeiouwy&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| rhoi h arno!&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Y ffug-god ==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
// cynhyrchu llinyn gyda phob fersiwn o&#039;r gair&lt;br /&gt;
// e.e. mewnbwn Caer yn cael allbwn &#039;Caer NEU Gaer NEU Nghaer NEU Chaer&#039;&lt;br /&gt;
llinyn cynhyrchu_treigladau(llinyn $gair)&lt;br /&gt;
{&lt;br /&gt;
  llinyn $chwiliad = $gair;&lt;br /&gt;
&lt;br /&gt;
  os ydy&#039;r llythyren gyntaf o&#039;r $gair ar y tabl? {&lt;br /&gt;
    // ydy felly mae&#039;r gair yn gallu treiglo&lt;br /&gt;
    cer trwy pob llythyren ar y tabl {&lt;br /&gt;
      $chwiliad += &#039;NEU&#039;;&lt;br /&gt;
      $chwiliad += cyfnewid_llythyren_gyntaf($gair); // parchu maint y llythyren (C yn newid i G, c yn newid i g)&lt;br /&gt;
    }&lt;br /&gt;
  $chwiliad = &#039;(&#039; + $chwiliad + &#039;)&#039;;&lt;br /&gt;
  }&lt;br /&gt;
  fel arall {&lt;br /&gt;
  // nac ydy felly dyw&#039;r gair ddim yn dreiglo&lt;br /&gt;
  // e.e. aderyn, Aberystwyth,&lt;br /&gt;
  // byddai $chwiliad == $gair&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  dychwelyd $chwiliad;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
llinyn chwilio(llinyn mewnbwn_chwiliad)&lt;br /&gt;
{&lt;br /&gt;
  cer trwy pob $gair ym $mewnbwn_chwiliad&lt;br /&gt;
  {&lt;br /&gt;
    cyfnewid cynhyrchu_treigladau($gair) am $gair&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Cod MySQL i chwilio gyda threigladau ==&lt;br /&gt;
&lt;br /&gt;
Fe wnes i geisio ar beth tebyg gan ddefnyddio cod &amp;quot;LIKE&amp;quot; mewn chwiliad MySQL. Nes i erioed ei gwblhau, ond y syniad oedd gennyf oedd cwtogi y 3 llythyren oddi ar flaen gair, gan mai dene fydd y nifer fwyaf o lythrennau posib sy&#039;n gysylltiedig â&#039;r treiglo, wedyn defnyddio &amp;quot;LIKE&amp;quot; i geisio paru gweddill y gair gyda chronfa data wedi ei seilio ar eiriadur rhydd.&lt;br /&gt;
&lt;br /&gt;
Cod dwi eisoes yn ei ddefnyddio ydi hwn, sydd bellach tu ôl i http://www.efrydydd.com (dwi wedi bod yn gweithio arno&#039;n ddiweddar):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$chwilio = &amp;quot;SELECT id, cymraeg_u, saesneg_u, cenedl_c, cenedl_s FROM termau WHERE dangos=&#039;1&#039; AND cymraeg_u LIKE &#039;%$allweddair%&#039; OR saesneg_u LIKE &#039;%$allweddair%&#039;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
Os nad oes gair yn gallu cael ei baru, bydd y tri llythyren cyntaf yn cael ei basio ymlaen at system cyfaddawdu, ble bydd yn dyfalu be gall fod, gan roi restr o bosibiliadau.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Perl ==&lt;br /&gt;
Darn bach o Perl i roi amrywiadau o air wedi treiglo. Dydi hwn ddim yn parchu maint llythrennau, fel y ffug-god uchod, ond gan bod SQL ddim chwaith, does dim angen rili.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;my @geiriau = treiglo(&#039;gair&#039;);&lt;br /&gt;
&lt;br /&gt;
BEGIN {&lt;br /&gt;
	my %t=(p=&amp;gt;[&#039;b&#039;,&#039;mh&#039;,&#039;ph&#039;],t=&amp;gt;[&#039;d&#039;,&#039;nh&#039;,&#039;th&#039;],c=&amp;gt;[&#039;g&#039;,&#039;ngh&#039;,&#039;ch&#039;],b=&amp;gt;[&#039;f&#039;,&#039;m&#039;],d=&amp;gt;[&#039;dd&#039;,&#039;n&#039;],g=&amp;gt;[&#039;&#039;,&#039;ng&#039;],ll=&amp;gt;[&#039;l&#039;],&#039;m&#039;=&amp;gt;[&#039;f&#039;],rh=&amp;gt;[&#039;r&#039;]);&lt;br /&gt;
	sub treiglo{$_[0]=~/^([cpt](?!h)|d(?!d)|[gbm]|ll|rh)(.*)$/io ? map{$_.$2} @{$t{$1}} : undef}&lt;br /&gt;
}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== PHP ==&lt;br /&gt;
Fersiwn sydyn o’r uchod yn PHP. Lot hyllach na’r fersiwn Perl wrth gwrs ;-)&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;$geiriau = treiglo(&#039;gair&#039;);&lt;br /&gt;
&lt;br /&gt;
function treiglo($gair){&lt;br /&gt;
	static $t=array(&#039;p&#039;=&amp;gt;array(&#039;b&#039;,&#039;mh&#039;,&#039;ph&#039;),&#039;t&#039;=&amp;gt;array(&#039;d&#039;,&#039;nh&#039;,&#039;th&#039;),&#039;c&#039;=&amp;gt;array(&#039;g&#039;,&#039;ngh&#039;,&#039;ch&#039;),&#039;b&#039;=&amp;gt;array(&#039;f&#039;,&#039;m&#039;),&#039;d&#039;=&amp;gt;array(&#039;dd&#039;,&#039;n&#039;),&#039;g&#039;=&amp;gt;array(&#039;&#039;,&#039;ng&#039;),&#039;ll&#039;=&amp;gt;array(&#039;l&#039;),&#039;m&#039;=&amp;gt;array(&#039;f&#039;),&#039;rh&#039;=&amp;gt;array(&#039;r&#039;));&lt;br /&gt;
	$g=array();&lt;br /&gt;
	if (preg_match(&#039;/^([cpt](?!h)|d(?!d)|[gbm]|ll|rh)(.*)$/i&#039;,$gair,$m)){&lt;br /&gt;
		foreach($t[strtolower($m[1])] as $x) $g[]=$x.$m[2];&lt;br /&gt;
		return $g;&lt;br /&gt;
	}&lt;br /&gt;
	return null;&lt;br /&gt;
}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Ategyn WordPress ==&lt;br /&gt;
&lt;br /&gt;
Wedi nocio rhywbeth sydyn at ei gilydd a&#039;i rhoi mewn ategyn efo ambell beth defnyddiol arall dwi&#039;n defnyddio ar safleoedd Cymraeg (trefnolion dyddiad a chywiro collnodau ar eiriau fel &#039;sdim). Dydi&#039;r SQL ddim yn arbennig o effeithlon, ond mae&#039;n dilyn patrwm WordPress. Croeso i rywun awgrymu pethau eraill i ychwanegu. Neu addasu yn ôl yr angen. [IS]&lt;br /&gt;
&lt;br /&gt;
http://slebog.net/pecynnau/wordpress/cymraeg/cymraeg.zip&lt;/div&gt;</summary>
		<author><name>Stanno</name></author>
	</entry>
	<entry>
		<id>https://hedyn.net/index.php?title=Prosesu_treigladau_gyda_meddalwedd&amp;diff=3863</id>
		<title>Prosesu treigladau gyda meddalwedd</title>
		<link rel="alternate" type="text/html" href="https://hedyn.net/index.php?title=Prosesu_treigladau_gyda_meddalwedd&amp;diff=3863"/>
		<updated>2012-10-07T13:51:32Z</updated>

		<summary type="html">&lt;p&gt;Stanno: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Esboniad ==&lt;br /&gt;
&lt;br /&gt;
Mae angen cod agored i adnabod treigladau. Byddai gymaint o bosibiliadau!&lt;br /&gt;
&lt;br /&gt;
Dw i eisiau datblygu ategyn WordPress i ychwanegu treigladau cywir i chwilio. Ar hyn o bryd mae angen chwilio am &#039;Caer&#039;, &#039;Gaer&#039;, &#039;Nghaer&#039; ar wahan. Gyda&#039;r ategyn byddai modd chwilio am un ohnonyn nhw yn unig a derbyn canlyniadau gyda phob fersiwn. &lt;br /&gt;
&lt;br /&gt;
Felly... os ydyn ni&#039;n gallu sgwennu ffug-cod gyda&#039;n gilydd byddai modd sgwennu&#039;r ategyn a rhyddhau&#039;r cod dan [[Trwydded gyhoeddus gyffredinol GNU (GPL yn Gymraeg)| GPL]].&lt;br /&gt;
&lt;br /&gt;
Er mwyn cael prosiect haws:&lt;br /&gt;
* Efallai gwnawn ni ddechrau gyda&#039;r fersiwn &#039;geiriadur&#039; o&#039;r gair yn unig - yn yr enghraifft mae pobl yn debygol i chwilio am &#039;Caer&#039; yn hytrach nag unrhyw fersiwn arall.&lt;br /&gt;
* Anghofia gwrywaidd a benywaidd ar hyn o bryd (byddai angen rhestr o eiriau fel arall)&lt;br /&gt;
&lt;br /&gt;
O&#039;n i&#039;n meddwl bod system gyda http://kevindonnelly.org.uk/ ond dw i&#039;n methu ffeindio fe. Hefyd bydda&#039;r broses datblygu yn hwyl!&lt;br /&gt;
--[[Defnyddiwr:Carlmorris|Carlmorris]] ([[Sgwrs Defnyddiwr:Carlmorris|sgwrs]]) 20:20, 5 Hydref 2012 (BST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Y treigladau ==&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #efefef;&amp;quot;&lt;br /&gt;
! Llythyren&lt;br /&gt;
! Meddal&lt;br /&gt;
! Trwynol&lt;br /&gt;
! Llais&lt;br /&gt;
! H-bom&lt;br /&gt;
|-&lt;br /&gt;
| p&lt;br /&gt;
| b&lt;br /&gt;
| mh&lt;br /&gt;
| ph&lt;br /&gt;
|-&lt;br /&gt;
| t&lt;br /&gt;
| d&lt;br /&gt;
| nh&lt;br /&gt;
| th&lt;br /&gt;
|-&lt;br /&gt;
| c&lt;br /&gt;
| g&lt;br /&gt;
| ngh&lt;br /&gt;
| ch&lt;br /&gt;
|-&lt;br /&gt;
| b&lt;br /&gt;
| f&lt;br /&gt;
| m&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| d&lt;br /&gt;
| dd&lt;br /&gt;
| n&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| g&lt;br /&gt;
| /hwyl fawr g/&lt;br /&gt;
| ng&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| m&lt;br /&gt;
| f&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| ll&lt;br /&gt;
| l&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rh&lt;br /&gt;
| r&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| aeiouwy&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| rhoi h arno!&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Y ffug-god ==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
// cynhyrchu llinyn gyda phob fersiwn o&#039;r gair&lt;br /&gt;
// e.e. mewnbwn Caer yn cael allbwn &#039;Caer NEU Gaer NEU Nghaer NEU Chaer&#039;&lt;br /&gt;
llinyn cynhyrchu_treigladau(llinyn $gair)&lt;br /&gt;
{&lt;br /&gt;
  llinyn $chwiliad = $gair;&lt;br /&gt;
&lt;br /&gt;
  os ydy&#039;r llythyren gyntaf o&#039;r $gair ar y tabl? {&lt;br /&gt;
    // ydy felly mae&#039;r gair yn gallu treiglo&lt;br /&gt;
    cer trwy pob llythyren ar y tabl {&lt;br /&gt;
      $chwiliad += &#039;NEU&#039;;&lt;br /&gt;
      $chwiliad += cyfnewid_llythyren_gyntaf($gair); // parchu maint y llythyren (C yn newid i G, c yn newid i g)&lt;br /&gt;
    }&lt;br /&gt;
  $chwiliad = &#039;(&#039; + $chwiliad + &#039;)&#039;;&lt;br /&gt;
  }&lt;br /&gt;
  fel arall {&lt;br /&gt;
  // nac ydy felly dyw&#039;r gair ddim yn dreiglo&lt;br /&gt;
  // e.e. aderyn, Aberystwyth,&lt;br /&gt;
  // byddai $chwiliad == $gair&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  dychwelyd $chwiliad;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
llinyn chwilio(llinyn mewnbwn_chwiliad)&lt;br /&gt;
{&lt;br /&gt;
  cer trwy pob $gair ym $mewnbwn_chwiliad&lt;br /&gt;
  {&lt;br /&gt;
    cyfnewid cynhyrchu_treigladau($gair) am $gair&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Cod MySQL i chwilio gyda threigladau ==&lt;br /&gt;
&lt;br /&gt;
Fe wnes i geisio ar beth tebyg gan ddefnyddio cod &amp;quot;LIKE&amp;quot; mewn chwiliad MySQL. Nes i erioed ei gwblhau, ond y syniad oedd gennyf oedd cwtogi y 3 llythyren oddi ar flaen gair, gan mai dene fydd y nifer fwyaf o lythrennau posib sy&#039;n gysylltiedig â&#039;r treiglo, wedyn defnyddio &amp;quot;LIKE&amp;quot; i geisio paru gweddill y gair gyda chronfa data wedi ei seilio ar eiriadur rhydd.&lt;br /&gt;
&lt;br /&gt;
Cod dwi eisoes yn ei ddefnyddio ydi hwn, sydd bellach tu ôl i http://www.efrydydd.com (dwi wedi bod yn gweithio arno&#039;n ddiweddar):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$chwilio = &amp;quot;SELECT id, cymraeg_u, saesneg_u, cenedl_c, cenedl_s FROM termau WHERE dangos=&#039;1&#039; AND cymraeg_u LIKE &#039;%$allweddair%&#039; OR saesneg_u LIKE &#039;%$allweddair%&#039;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
Os nad oes gair yn gallu cael ei baru, bydd y tri llythyren cyntaf yn cael ei basio ymlaen at system cyfaddawdu, ble bydd yn dyfalu be gall fod, gan roi restr o bosibiliadau.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Perl ==&lt;br /&gt;
Darn bach o Perl i roi amrywiadau o air wedi treiglo. Dydi hwn ddim yn parchu maint llythrennau, fel y ffug-god uchod, ond gan bod SQL ddim chwaith, does dim angen rili.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;my @geiriau = treiglo(&#039;gair&#039;);&lt;br /&gt;
&lt;br /&gt;
BEGIN {&lt;br /&gt;
	my %t=(p=&amp;gt;[&#039;b&#039;,&#039;mh&#039;,&#039;ph&#039;],t=&amp;gt;[&#039;d&#039;,&#039;nh&#039;,&#039;th&#039;],c=&amp;gt;[&#039;g&#039;,&#039;ngh&#039;,&#039;ch&#039;],b=&amp;gt;[&#039;f&#039;,&#039;m&#039;],d=&amp;gt;[&#039;dd&#039;,&#039;n&#039;],g=&amp;gt;[&#039;&#039;,&#039;ng&#039;],ll=&amp;gt;[&#039;l&#039;],&#039;m&#039;=&amp;gt;[&#039;f&#039;],rh=&amp;gt;[&#039;r&#039;]);&lt;br /&gt;
	sub treiglo{$_[0]=~/^([cpt](?!h)|d(?!d)|[gbm]|ll|rh)(.*)$/io ? map{$_.$2} @{$t{$1}} : undef}&lt;br /&gt;
}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== PHP ==&lt;br /&gt;
Fersiwn sydyn o’r uchod yn PHP. Lot hyllach na’r fersiwn Perl wrth gwrs ;-)&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;$geiriau = treiglo(&#039;gair&#039;);&lt;br /&gt;
&lt;br /&gt;
function treiglo($gair){&lt;br /&gt;
	static $t=array(&#039;p&#039;=&amp;gt;array(&#039;b&#039;,&#039;mh&#039;,&#039;ph&#039;),&#039;t&#039;=&amp;gt;array(&#039;d&#039;,&#039;nh&#039;,&#039;th&#039;),&#039;c&#039;=&amp;gt;array(&#039;g&#039;,&#039;ngh&#039;,&#039;ch&#039;),&#039;b&#039;=&amp;gt;array(&#039;f&#039;,&#039;m&#039;),&#039;d&#039;=&amp;gt;array(&#039;dd&#039;,&#039;n&#039;),&#039;g&#039;=&amp;gt;array(&#039;&#039;,&#039;ng&#039;),&#039;ll&#039;=&amp;gt;array(&#039;l&#039;),&#039;m&#039;=&amp;gt;array(&#039;f&#039;),&#039;rh&#039;=&amp;gt;array(&#039;r&#039;));&lt;br /&gt;
	$g=array();&lt;br /&gt;
	if (preg_match(&#039;/^([cpt](?!h)|d(?!d)|[gbm]|ll|rh)(.*)$/i&#039;,$gair,$m)){&lt;br /&gt;
		foreach($t[strtolower($m[1])] as $x) $g[]=$x.$m[2];&lt;br /&gt;
		return $g;&lt;br /&gt;
	}&lt;br /&gt;
	return null;&lt;br /&gt;
}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Ategyn WordPress ==&lt;br /&gt;
&lt;br /&gt;
Wedi nocio rhywbeth sydyn at ei gilydd a&#039;i rhoi mewn ategyn efo ambell beth defnyddiol arall dwi&#039;n defnyddio ar safleoedd Cymraeg (trefnolion dyddiad a chywiro collnodau ar eiriau fel &#039;sdim). Croeso i rywun awgrymu pethau eraill i ychwanegu. Neu addasu yn ôl yr angen. [IS]&lt;br /&gt;
&lt;br /&gt;
http://slebog.net/pecynnau/wordpress/cymraeg/cymraeg.zip&lt;/div&gt;</summary>
		<author><name>Stanno</name></author>
	</entry>
	<entry>
		<id>https://hedyn.net/index.php?title=Prosesu_treigladau_gyda_meddalwedd&amp;diff=3862</id>
		<title>Prosesu treigladau gyda meddalwedd</title>
		<link rel="alternate" type="text/html" href="https://hedyn.net/index.php?title=Prosesu_treigladau_gyda_meddalwedd&amp;diff=3862"/>
		<updated>2012-10-06T10:31:44Z</updated>

		<summary type="html">&lt;p&gt;Stanno: Ychwanegu cod Perl a PHP&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Esboniad ==&lt;br /&gt;
&lt;br /&gt;
Mae angen cod agored i adnabod treigladau. Byddai gymaint o bosibiliadau!&lt;br /&gt;
&lt;br /&gt;
Dw i eisiau datblygu ategyn WordPress i ychwanegu treigladau cywir i chwilio. Ar hyn o bryd mae angen chwilio am &#039;Caer&#039;, &#039;Gaer&#039;, &#039;Nghaer&#039; ar wahan. Gyda&#039;r ategyn byddai modd chwilio am un ohnonyn nhw yn unig a derbyn canlyniadau gyda phob fersiwn. &lt;br /&gt;
&lt;br /&gt;
Felly... os ydyn ni&#039;n gallu sgwennu ffug-cod gyda&#039;n gilydd byddai modd sgwennu&#039;r ategyn a rhyddhau&#039;r cod dan [[Trwydded gyhoeddus gyffredinol GNU (GPL yn Gymraeg)| GPL]].&lt;br /&gt;
&lt;br /&gt;
Er mwyn cael prosiect haws:&lt;br /&gt;
* Efallai gwnawn ni ddechrau gyda&#039;r fersiwn &#039;geiriadur&#039; o&#039;r gair yn unig - yn yr enghraifft mae pobl yn debygol i chwilio am &#039;Caer&#039; yn hytrach nag unrhyw fersiwn arall.&lt;br /&gt;
* Anghofia gwrywaidd a benywaidd ar hyn o bryd (byddai angen rhestr o eiriau fel arall)&lt;br /&gt;
&lt;br /&gt;
O&#039;n i&#039;n meddwl bod system gyda http://kevindonnelly.org.uk/ ond dw i&#039;n methu ffeindio fe. Hefyd bydda&#039;r broses datblygu yn hwyl!&lt;br /&gt;
--[[Defnyddiwr:Carlmorris|Carlmorris]] ([[Sgwrs Defnyddiwr:Carlmorris|sgwrs]]) 20:20, 5 Hydref 2012 (BST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Y treigladau ==&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #efefef;&amp;quot;&lt;br /&gt;
! Llythyren&lt;br /&gt;
! Meddal&lt;br /&gt;
! Trwynol&lt;br /&gt;
! Llais&lt;br /&gt;
! H-bom&lt;br /&gt;
|-&lt;br /&gt;
| p&lt;br /&gt;
| b&lt;br /&gt;
| mh&lt;br /&gt;
| ph&lt;br /&gt;
|-&lt;br /&gt;
| t&lt;br /&gt;
| d&lt;br /&gt;
| nh&lt;br /&gt;
| th&lt;br /&gt;
|-&lt;br /&gt;
| c&lt;br /&gt;
| g&lt;br /&gt;
| ngh&lt;br /&gt;
| ch&lt;br /&gt;
|-&lt;br /&gt;
| b&lt;br /&gt;
| f&lt;br /&gt;
| m&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| d&lt;br /&gt;
| dd&lt;br /&gt;
| n&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| g&lt;br /&gt;
| /hwyl fawr g/&lt;br /&gt;
| ng&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| m&lt;br /&gt;
| f&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| ll&lt;br /&gt;
| l&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rh&lt;br /&gt;
| r&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| aeiouwy&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| rhoi h arno!&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Y ffug-god ==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
// cynhyrchu llinyn gyda phob fersiwn o&#039;r gair&lt;br /&gt;
// e.e. mewnbwn Caer yn cael allbwn &#039;Caer NEU Gaer NEU Nghaer NEU Chaer&#039;&lt;br /&gt;
llinyn cynhyrchu_treigladau(llinyn $gair)&lt;br /&gt;
{&lt;br /&gt;
  llinyn $chwiliad = $gair;&lt;br /&gt;
&lt;br /&gt;
  os ydy&#039;r llythyren gyntaf o&#039;r $gair ar y tabl? {&lt;br /&gt;
    // ydy felly mae&#039;r gair yn gallu treiglo&lt;br /&gt;
    cer trwy pob llythyren ar y tabl {&lt;br /&gt;
      $chwiliad += &#039;NEU&#039;;&lt;br /&gt;
      $chwiliad += cyfnewid_llythyren_gyntaf($gair); // parchu maint y llythyren (C yn newid i G, c yn newid i g)&lt;br /&gt;
    }&lt;br /&gt;
  $chwiliad = &#039;(&#039; + $chwiliad + &#039;)&#039;;&lt;br /&gt;
  }&lt;br /&gt;
  fel arall {&lt;br /&gt;
  // nac ydy felly dyw&#039;r gair ddim yn dreiglo&lt;br /&gt;
  // e.e. aderyn, Aberystwyth,&lt;br /&gt;
  // byddai $chwiliad == $gair&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  dychwelyd $chwiliad;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
llinyn chwilio(llinyn mewnbwn_chwiliad)&lt;br /&gt;
{&lt;br /&gt;
  cer trwy pob $gair ym $mewnbwn_chwiliad&lt;br /&gt;
  {&lt;br /&gt;
    cyfnewid cynhyrchu_treigladau($gair) am $gair&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Cod MySQL i chwilio gyda threigladau ==&lt;br /&gt;
&lt;br /&gt;
Fe wnes i geisio ar beth tebyg gan ddefnyddio cod &amp;quot;LIKE&amp;quot; mewn chwiliad MySQL. Nes i erioed ei gwblhau, ond y syniad oedd gennyf oedd cwtogi y 3 llythyren oddi ar flaen gair, gan mai dene fydd y nifer fwyaf o lythrennau posib sy&#039;n gysylltiedig â&#039;r treiglo, wedyn defnyddio &amp;quot;LIKE&amp;quot; i geisio paru gweddill y gair gyda chronfa data wedi ei seilio ar eiriadur rhydd.&lt;br /&gt;
&lt;br /&gt;
Cod dwi eisoes yn ei ddefnyddio ydi hwn, sydd bellach tu ôl i http://www.efrydydd.com (dwi wedi bod yn gweithio arno&#039;n ddiweddar):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$chwilio = &amp;quot;SELECT id, cymraeg_u, saesneg_u, cenedl_c, cenedl_s FROM termau WHERE dangos=&#039;1&#039; AND cymraeg_u LIKE &#039;%$allweddair%&#039; OR saesneg_u LIKE &#039;%$allweddair%&#039;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
Os nad oes gair yn gallu cael ei baru, bydd y tri llythyren cyntaf yn cael ei basio ymlaen at system cyfaddawdu, ble bydd yn dyfalu be gall fod, gan roi restr o bosibiliadau.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Perl ==&lt;br /&gt;
Darn bach o Perl i roi amrywiadau o air wedi treiglo. Dydi hwn ddim yn parchu maint llythrennau, fel y ffug-god uchod, ond gan bod SQL ddim chwaith, does dim angen rili.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;my @geiriau = treiglo(&#039;gair&#039;);&lt;br /&gt;
&lt;br /&gt;
BEGIN {&lt;br /&gt;
	my %t=(p=&amp;gt;[&#039;b&#039;,&#039;mh&#039;,&#039;ph&#039;],t=&amp;gt;[&#039;d&#039;,&#039;nh&#039;,&#039;th&#039;],c=&amp;gt;[&#039;g&#039;,&#039;ngh&#039;,&#039;ch&#039;],b=&amp;gt;[&#039;f&#039;,&#039;m&#039;],d=&amp;gt;[&#039;dd&#039;,&#039;n&#039;],g=&amp;gt;[&#039;&#039;,&#039;ng&#039;],ll=&amp;gt;[&#039;l&#039;],&#039;m&#039;=&amp;gt;[&#039;f&#039;],rh=&amp;gt;[&#039;r&#039;]);&lt;br /&gt;
	sub treiglo{$_[0]=~/^([cpt](?!h)|d(?!d)|[gbm]|ll|rh)(.*)$/io ? map{$_.$2} @{$t{$1}} : undef}&lt;br /&gt;
}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== PHP ==&lt;br /&gt;
Fersiwn sydyn o’r uchod yn PHP. Lot hyllach na’r fersiwn Perl wrth gwrs ;-)&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;$geiriau = treiglo(&#039;gair&#039;);&lt;br /&gt;
&lt;br /&gt;
function treiglo($gair){&lt;br /&gt;
	static $t=array(&#039;p&#039;=&amp;gt;array(&#039;b&#039;,&#039;mh&#039;,&#039;ph&#039;),&#039;t&#039;=&amp;gt;array(&#039;d&#039;,&#039;nh&#039;,&#039;th&#039;),&#039;c&#039;=&amp;gt;array(&#039;g&#039;,&#039;ngh&#039;,&#039;ch&#039;),&#039;b&#039;=&amp;gt;array(&#039;f&#039;,&#039;m&#039;),&#039;d&#039;=&amp;gt;array(&#039;dd&#039;,&#039;n&#039;),&#039;g&#039;=&amp;gt;array(&#039;&#039;,&#039;ng&#039;),&#039;ll&#039;=&amp;gt;array(&#039;l&#039;),&#039;m&#039;=&amp;gt;array(&#039;f&#039;),&#039;rh&#039;=&amp;gt;array(&#039;r&#039;));&lt;br /&gt;
	$g=array();&lt;br /&gt;
	if (preg_match(&#039;/^([cpt](?!h)|d(?!d)|[gbm]|ll|rh)(.*)$/i&#039;,$gair,$m)){&lt;br /&gt;
		foreach($t[strtolower($m[1])] as $x) $g[]=$x.$m[2];&lt;br /&gt;
		return $g;&lt;br /&gt;
	}&lt;br /&gt;
	return null;&lt;br /&gt;
}&amp;lt;/nowiki&amp;gt;&lt;/div&gt;</summary>
		<author><name>Stanno</name></author>
	</entry>
</feed>