Sbwriel*spot

Ffrwd Atom Rhithfro.com

23 September 2006

Dyddiadau Cymraeg...

01:09 4 sylw

Mae'r cod wedi'i ddiweddaru - os ydych chi'n defnyddio'r cod yma, copiwch a gludwch y cod isod yn ei le. Mwy o wybodaeth.


Fersiwn 2

Mae hi di bod dros 2 flynedd ers i mi gyhoeddi'r sgript yma, a mae hi wedi bod yn gymharol llwyddiannus, wedi cael ei drosi i Gaeleg yr Alban, ond wedi codi ychydig o broblemau:

  1. Ges i cwynion am y sgript yn ysgrifennu dyddiadau anghywir am rhai misoedd (nodedig, am reswm, Gorffennaf ac Awst). Ges i ryddhad wrth ffeindio mas mai nid fy nghôdo i oedd yn wrong (wel, ddim yn gyfangwbl) - Mae problem gyda Javascript wrth iddo ddehongli rhifau (parseInt()) - mae rhifau 7 ac 8 yn messo fe lan. Bugger. Wel o leia gyda'r sgript newydd (isod) mae'r angen i ddehongli'r rhifau fel yna wedi mynd (a dwi nawr yn gwybod fel i fynd ogwmpas y broblem :) ).
  2. Dilysrwydd - odd y fersiwn gynta'n gofyn fod angen rhoi <script>09.2006</script> <noscript>09.2006</noscript> i fewn i'r tudalen (nifer o weithiau ar y tudalen blaen a'r archifau), odd yn achosi i'r blog ffaelu profion y W3C. Mae'r sgript newydd yn gwbl dilys nawr.
  3. Fformat dyddiadau - yn y fersiwn gynta, roedd rhaid dewis fformat aneglur yn settings blogger... oedd yn anffodus i unrhywun oedd ddim â javascript ar eu porwr. Hefyd, roedd y fformat dyddiad hyll yma'n cael ei ddangos yn y bar teitl ar dop y porwr (ych-a-fi!).

Ta be, dyma fersiwn 2!!!!

Mae fersiwn 2 yn symlach, fwy taclus, ac yn gweithio ar pob prif borwr (o wybod i fi, fersiynau diweddaraf Firefox, Internet Explorer, Opera a Safari; ar Windows, Mac a Linux (a mwy) - diolch i gwefan anhygoel browsershots.) Mae'n haws ei rhoi arno, a dim ond 3 cam sydd:

A. Gludo'r côd yn y patrymlun.

Mae'n rhaid rhoi'r côd canlynol just uwchben neu cyn y 2 tag olaf yn eich patrymlun (a ddylai fod </body></html>):

<script type="text/javascript">

//<![CDATA[

/*

* DYDDIADAU AML-IEITHOG v2.1

* gan Sbwriel (http://sbwriel.blogspot.com) - am help, ewch i http://sbwriel.blogspot.com/2006/09/dyddiadau-cymraeg.html

* (cc) 2006. Trwydded Creative Commons (Attribution-NonCommercial-ShareAlike 2.0 License - http://creativecommons.org/licenses/by-nc-sa/2.0/uk/)

*/

function Dyddiadau(dosbarth) {

if (!document.getElementsByTagName) return;

var cy = ["Ionawr","Chwefror","Mawrth","Ebrill","Mai","Mehefin","Gorffennaf","Awst","Medi","Hydref","Tachwedd","Rhagfyr","Dydd Llun","Dydd Mawrth","Dydd Mercher","Dydd Iau","Dydd Gwener","Dydd Sadwrn","Dydd Sul"];

var en = ["January","February","March","April","May","June","July","August","September","October","November","December","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"];

var archifau = false;

if ( (typeof(dosbarth) == "undefined") || (dosbarth == "") || (dosbarth == null) ) {

dosbarth = "date-header";

archifau = true;

}

var x = document.getElementsByTagName("*");

for (var i=0; i<x.length; i++) {

if (x[i].getAttributeNode("class") && (x[i].getAttributeNode("class").value.length > 0) && (x[i].getAttributeNode("class").value == dosbarth) ) {

var s = x[i].firstChild.nodeValue.split(" ");

for (var j=0; j<s.length; j++) {

for (var k=0; k<en.length; k++) {

if (en[k].toLowerCase() == s[j].toLowerCase()) s[j] = cy[k];

}

}

x[i].innerHTML = s.join(" ");

}

}

if (archifau) {

x = document.getElementsByTagName("ul");

for (var i=0; i<x.length; i++) {

if (x[i].getAttributeNode("class") && (x[i].getAttributeNode("class").value.length > 0) && (x[i].getAttributeNode("class").value == "archive-list") ) {

var y = x[i].getElementsByTagName("li");

for (var j=0; j<y.length; j++) {

var z = y[j].getElementsByTagName("a");

var s = z[0].firstChild.nodeValue.split(" ");

for (var k=0; k<s.length; k++) {

for (var m=0; m<en.length; m++) {

if (en[m].toLowerCase() == s[k].toLowerCase()) s[k] = cy[m];

}

}

z[0].innerHTML = s.join(" ");

}

}

}

}

var s = document.title.split(" ");

for (var j=0; j<s.length; j++) {

for (var k=0; k<en.length; k++) {

if (en[k].toLowerCase() == s[j].toLowerCase()) s[j] = cy[k];

}

}

document.title = s.join(" ");

}

Dyddiadau();

//]]>

</script>

B. Adio "dosbarth" i'r dyddiad yn eich patrymlun

Er mwyn i'r sgript wybod ble mae'r dyddiadau, mae'n angenrheidiol rhoi priodoledd (attribute) ar y tag html blaenorol (e.e. <h2 class="date-header"><$BlogDateHeaderDate$></h2>).

Nodwch fod gwerth diofyn (default) wedi'i rhoi ar y sgript yma, sef "date-header" - mi fydd y gwerth yma'n iawn ar gyfer y mwyafrif o blogiau sydd heb newid eu patrymlun neu'n defnyddio rhai Blogger, ond os oes angen ei newid e (fel ar fy mlog i er enghraifft), mi fydd yn rhaid i chi newid y sgript isod - yn hytrach na Dyddiadau(); ar y diwedd, i Dyddiadau("date-header"); (newidiwch "date-header" i beth bynnag sy'n briodol i chi).

C. Newid y dyddiad yn eich Settings

Does dim rhaid i chi newid hyn o gwbl - ni fydd y sgript yn ei effeithio. Yn y bôn, yr unig beth mae'r sgript yma'n gwneud yw cyfieithu enwau misoedd a dyddiau wythnos Saesneg i'r Gymraeg. Os hoffech newid eich dyddiadau (fel dw i wedi gwneud) i rhywbeth mwy dealladwy (h.y. Saesneg, os nad oes javascript ganddynt), gwnewch, ac mae'r sgript yn ei newid.

Reit, dwi'n gwybod fod hwna'n lot o eiriau, a dwi'n gwybod na fyddai'n gwneud llawer o sens i bawb, felly os oes angen help arnoch, gadewch sylw.

4 sylw

Blogger Rhys Wynne
Diolch am y sgript

Tydi hyn yn golygu dim i fi ond dois ar draws hwn drwy ddarllen rhestr del.icio.us rhywun;
http://www.globalize-rails.org/wiki/

Blogger Wierdo
ym...dwin bod yn wirion? dydi'r dyddiadau a'r archifau ddim yn gweithio yn gymraeg ar fy mlog (dwi'n newid fy mlog, oddon gweithio i fy hen blog ond ddim i'r newydd...dwi methu gweld be dwi di neud yn anghywir!! Help os gwelwch yn dda!

Blogger Aled
reit - o be allai weld, dim ond copio a gludo'r sgript i waelod dy batrymlun, ac yna newidia'r dyddiad i ryw ddyddiad saesneg. dyle hwna weithio.

Blogger Aled
wps, newydd sylwi beth yn union ot tin gofyn. ma rhywbeth di mynd o'i le - I'll get back to you.

Diolch am hwna - y 'bug' gynta!

Adia sylw