|
Posted by Frits van Leeuwen on 10/12/06 22:05
I host my website someone else..
Newest php is possible. php5 I think.
What DB can I you for web pages?
Unix webserver I think.
My mother language is Dutch. ;-)
"Steve" <no.one@example.com> schreef in bericht
news:8irXg.4458$%l1.2653@newsfe07.lga...
> that's ok. your english is *far* better than my german or dutch. ;^)
>
> what database are you going to use? what web server? what version of php?
> are you using your own server or one hosted by someone else?
>
>
> "Frits van Leeuwen" <Frits.vanLeeuwen@nospam.nl> wrote in message
> news:caa50$452dee9a$c2ab6db8$21970@news1.tudelft.nl...
> | wow, big answare... thanks.
> | No the most of the text does not change many times.
> | I try to build a website. Before I did it with Front Page, but now I
> need
> | PHP I think. But I have so little experience with PHP, so I need Help.
> Now
> i
> | have a PHP page. But 3 times a text where I think 1 time is enough. I
> like
> | to change it. But I do not know how.
> | I know, I can do it with a DB, before I need 1 good looking page.
> | My first start was the language chooice. Now I like the posebilety to
> change
> | my texts ones. (not 3 times)
> | I think I can link the page to a text. But when I know how to create and
> use
> | a DB I like to use the DB.
> | I can not use MYSQL.
> |
> | My English is not so well, I'm sorry for it. So I need time read and
> | understand your help.
> |
> |
> | "Steve" <no.one@example.com> schreef in bericht
> | news:SPeXg.3238$%l1.3162@newsfe07.lga...
> | > sorry for the text-wrapping...
> | >
> | > i'll try. you may have better luck with the hundreds of resources on
> the
> | web
> | > though.
> | >
> | > what kind of content will you have? does it change much?
> | >
> | > anyway, for starters your code should define constants for either
> sections
> | > of text that are static or phrases (like in error messages). that way
> when
> | > programming, you refer to the constant which elimenates language
> (except
> | for
> | > php) altogether. ex.:
> | >
> | > define('ERROR_INVALID_DATA_TEXT', 45);
> | > define('EMAIL', 53);
> | >
> | > if (!isEmail($email)){ echo translate($language,
> | > array(ERROR_INVALID_DATA_TEXT, EMAIL)); }
> | >
> | > 45 and 53 would refer to the db id of the item in a translation table.
> | > translate(...) is a function you'd create that simply to query the db
> and
> | > return the appropriate text.
> | >
> | > if you have php 5, you can make this much more friendly.
> | >
> | > ========
> | >
> | >
> | > class errors
> | > {
> | > static const $invalidData = 45;
> | > }
> | >
> | > class phrases
> | > {
> | > // constants here to define individual phrases
> | > }
> | >
> | > class words
> | > {
> | > static const $email = 53;
> | > }
> | >
> | > class language
> | > {
> | > private $_currentLanguage;
> | > static function setLanguage($language){ $this->_currentLanguage =
> | > $language; }
> | > static function translate($id, $concat = null)
> | > {
> | > if (!is_array($id)){ $id = array($id); }
> | > $text = array();
> | > foreach ($id as $toText)
> | > {
> | > // get text from db from id supplied
> | > $text[$id] = record['VALUE']; // ficticious record object from
> db
> | > }
> | > if (!$concat){ return $text; }
> | > return implode($concat, $text);
> | > }
> | > }
> | >
> | > ======
> | >
> | > if (!isEmail($email)){ echo
> language.translate(array(errors::$invalidData,
> | > words::$email), true); }
> | >
> | > anyway, an OO approach allows you segement and refer to language id's
> in
> a
> | > grouped and ordered fashion rather than trying to achieve the same
> thing
> | > with VERY LONG define names...plus, they can be static so that you
> don't
> | > have to explicitly create an instance of each of them.
> | >
> | > again, try and keep everything segmented - from code, html, and
> language.
> | it
> | > then becomes more manageable. the first thing i'd create is a
> front-end
> | for
> | > the db translation table so that you can integrate the defined table
> | > constants and change them automatically as you update your table...
> | >
> | > let's say you define things in code as i have done...error text,
> phrases,
> | > and individual words. i chose these because the a word in one language
> by
> | > itself may look totally different when it is in a phrase. and a phrase
> | that
> | > is imphatic may be worded *entirely* differently that the tone of a
> | warning
> | > or error. the other thing to consider is gender...which most languages
> | have
> | > (i didn't account for it in the translate(...) function example, but
> you
> | get
> | > the gist). here's what my translation table would look like:
> | >
> | > create table language
> | > {
> | > id int null auto_increment primary ,
> | > varName varchar(255) not null ,
> | > lang int not null , // assume your
> | > supported langs. in other linked table
> | > type enum('error', 'phrase', 'word' not null , // mysql assumed
> and
> | > not sure of syntax
> | > gender int not null , // assume genders
> in
> | > other linked table
> | > value text
> | > }
> | > on primary;
> | >
> | > i think from that, you can figure out the query for the translate(...)
> | > function. as for auto-updating the errors, phrases, words...make each
> a
> | > require_once page. after an entry in this table is updated from your
> | > maintenance web page, have php query the db and output the data to
> file
> so
> | > that the output is actually php language itself for each varName and
> id
> | > returned from the query. for you as a programmer, you'll need to make
> sure
> | > that an email is automatically generated so that the change is
> | > announced...especially if you work on a team of developers.
> | >
> | > anyway, that's the bulk of it as briefly and precisely as i can get
> here.
> | > i18n is a huge topic of discussion. it is covered by many, many, MANY
> | > approaches...this is just a basic way to cover the bases.
> | >
> | > hope that gets you started.
> | >
> | >
> | >
> | > "Frits van Leeuwen" <fleeuwen@wanadoo.nlx> wrote in message
> | > news:452d6cfb$0$13688$dbd4b001@news.wanadoo.nl...
> | > | You are right. That's why I asking for help.
> | > | So, can you help me step by step to fix a DB for my text?
> | > |
> | > | "Steve" <no.one@example.com> schreef in bericht
> | > | news:10dXg.196$di5.75@newsfe06.lga...
> | > | > your architecture is all wrong. separate the language from the
> html
> as
> | > | > much
> | > | > as possible. either store a page's content in a db or in it's own
> file
> | > for
> | > | > each language you intend to support...or keep each language in its
> own
> | > | > directory and redirect to that directory as a virtual server. you
> | cannot
> | > | > hope to be able to maintain one page of code showing all language
> | > versions
> | > | > between switch statements.
> | > | >
> | > | > look for 'programming i18n' on google to shorten the learning
> curve.
> | > | >
> | > | > hope that helps.
> | > | >
> | > | >
> | > | > "Frits van Leeuwen" <fleeuwen@wanadoo.nlx> wrote in message
> | > | > news:452d5699$0$45649$dbd4f001@news.wanadoo.nl...
> | > | > | Hello,
> | > | > | I have index.php and language.php
> | > | > | At index.php are buttons for choose language.
> | > | > | In language I set a cookie and go back to index.php. (I'm happy,
> | it's
> | > | > | working)
> | > | > |
> | > | > | But index.php has too match text I think.
> | > | > | In the following code, I show you "**** English text ****" and
> | > | > "****Dutch
> | > | > | text ****" thise are all the same texts. The difrence is the
> | language.
> | > | > But
> | > | > | when you look to the code, You will see 3 times Enlis text and 3
> | times
> | > | > Dutch
> | > | > | text. I think it has to be one time for both of them.
> | > | > |
> | > | > | This is index.php
> | > | > |
> | > | > | <?php
> | > | > | if (isset($_COOKIE["LeeuwendeelTaal"]))
> | > | > | {
> | > | > | switch ($_COOKIE["LeeuwendeelTaal"])
> | > | > | {
> | > | > | case "EN": // ENGLISH
> | > | > | ?>
> | > | > | <html>
> | > | > | <head>
> | > | > | <title>Begin Leeuwendeel.info</title>
> | > | > | </head>
> | > | > | <body link="#0000FF" vlink="#800080" alink="#00FFFF"
> text="#FF0000"
> | > | > | bgcolor="#FFFFE1">
> | > | > | <div align="center">
> | > | > | <table border="1" width="100%" id="table1" style="border-width:
> 0px"
> | > | > | height="530">
> | > | > | <tr>
> | > | > | <td style="border-style: none; border-width: medium">
> | > | > | **** English text ****
> | > | > | </td>
> | > | > | <td rowspan="1" style="border-style: none; border-width:
> medium">
> | > | > | <p align="right"><img border="0"
> | src="images/underconstruction.gif"
> | > | > | width="480" height="379"></p>
> | > | > | </td>
> | > | > | <td style="border-style: none; border-width: medium">
> | > | > | <!--vlag NL-->
> | > | > | <p align="right"><a href="/language.php?ln=NL"><img border="0"
> | > | > | src="knoppen/vlagNL.jpg" width="33" height="20" alt="Klik hier,
> | > wanneer
> | > | > u
> | > | > de
> | > | > | site in het Nederlands wilt lezen."></a></p>
> | > | > | <!--vlag EN-->
> | > | > | <p align="right"><a href="/language.php?ln=EN"><img border="2"
> | > | > | src="knoppen/vlagEN.jpg" width="33" height="20" alt="Click here,
> | when
> | > | > you
> | > | > | like to read the website in English."></a></p>
> | > | > | </td>
> | > | > | </tr>
> | > | > | </table>
> | > | > | </div>
> | > | > | <p align="center"><font size="1">Last change:
> | > | > |
> | > | > | <?php
> | > | > | break; // einde ENGLISH
> | > | > |
> | > | > | case "NL": // NEDERLANDS
> | > | > | ?>
> | > | > | <html>
> | > | > | <head>
> | > | > | <title>Begin Leeuwendeel.info</title>
> | > | > | </head>
> | > | > | <body link="#0000FF" vlink="#800080" alink="#00FFFF"
> text="#FF0000"
> | > | > | bgcolor="#FFFFE1">
> | > | > | <div align="center">
> | > | > | <table border="1" width="100%" id="table1" style="border-width:
> 0px"
> | > | > | height="530">
> | > | > | <tr>
> | > | > | <td style="border-style: none; border-width: medium">
> | > | > | **** Dutch text **** </td>
> | > | > | <td rowspan="1" style="border-style: none; border-width:
> medium">
> | > | > | <p align="right"><img border="0"
> | src="images/underconstruction.gif"
> | > | > | width="480" height="379"></p>
> | > | > | </td>
> | > | > | <td style="border-style: none; border-width: medium">
> | > | > | <!--vlag NL-->
> | > | > | <p align="right"><a href="/language.php?ln=NL"><img border="2"
> | > | > | src="knoppen/vlagNL.jpg" width="33" height="20" alt="Klik hier,
> | > wanneer
> | > | > u
> | > | > de
> | > | > | site in het Nederlands wilt lezen."></a></p>
> | > | > | <!--vlag EN-->
> | > | > | <p align="right"><a href="/language.php?ln=EN"><img border="0"
> | > | > | src="knoppen/vlagEN.jpg" width="33" height="20" alt="Click here,
> | when
> | > | > you
> | > | > | like to read the website in English."></a></p>
> | > | > | </td>
> | > | > | </tr>
> | > | > | </table>
> | > | > | </div>
> | > | > | <p align="center"><font size="1">Laatste wijziging:
> | > | > |
> | > | > | <?php
> | > | > | break;
> | > | > |
> | > | > | default:
> | > | > | ?>
> | > | > | <html>
> | > | > | <head>
> | > | > | <title>Begin Leeuwendeel.info</title>
> | > | > | </head>
> | > | > | <body link="#0000FF" vlink="#800080" alink="#00FFFF"
> text="#FF0000"
> | > | > | bgcolor="#FFFFE1">
> | > | > | <div align="center">
> | > | > | <table border="1" width="100%" id="table1" style="border-width:
> 0px"
> | > | > | height="530">
> | > | > | <tr>
> | > | > | <td style="border-style: none; border-width: medium">
> | > | > | **** Dutch text ****
> | > | > | </td>
> | > | > | <td rowspan="1" style="border-style: none; border-width:
> medium">
> | > | > | <p align="center"><img border="0"
> | src="images/underconstruction.gif"
> | > | > | width="480" height="379"></p>
> | > | > | </td>
> | > | > | <td style="border-style: none; border-width: medium">
> | > | > | **** English text ****
> | > | > | </td>
> | > | > | </tr>
> | > | > | <tr>
> | > | > | <td style="border-style: none; border-width: medium">
> | > | > | <p align="center"><a href="/language.php?ln=NL"><img
> border="0"
> | > | > | src="knoppen/vlagNL.jpg" width="165" height="100" alt="Klik
> hier,
> | > | > wanneer
> | > | > u
> | > | > | de site in het Nederlands wilt lezen."></a>
> | > | > | </td>
> | > | > | <td style="border-style: none; border-width: medium">
> | > | > | </td>
> | > | > | <td style="border-style: none; border-width: medium">
> | > | > | <p align="center"><a href="/language.php?ln=EN"><img
> border="0"
> | > | > | src="knoppen/vlagEN.jpg" width="165" height="100" alt="Click
> here,
> | > when
> | > | > you
> | > | > | like to read the website in English."></a>
> | > | > | </td>
> | > | > | </tr>
> | > | > | </table>
> | > | > | </div>
> | > | > | <p align="center"><font size="1">Laatste wijziging / Last
> change:
> | > | > |
> | > | > | <?php
> | > | > | break; // einde geen keuze
> | > | > |
> | > | > | }
> | > | > | }
> | > | > |
> | > | > | else
> | > | > | {
> | > | > | setcookie("LeeuwendeelTaal");
> | > | > | ?>
> | > | > | <html>
> | > | > | <head>
> | > | > | <title>Begin Leeuwendeel.info</title>
> | > | > | </head>
> | > | > | <body link="#0000FF" vlink="#800080" alink="#00FFFF"
> text="#FF0000"
> | > | > | bgcolor="#FFFFE1">
> | > | > | <div align="center">
> | > | > | <table border="1" width="100%" id="table1" style="border-width:
> 0px"
> | > | > | height="530">
> | > | > | <tr>
> | > | > | <td style="border-style: none; border-width: medium">
> | > | > | **** Dutch text ****
> | > | > | </td>
> | > | > | <td rowspan="1" style="border-style: none; border-width:
> medium">
> | > | > | <p align="center"><img border="0"
> | src="images/underconstruction.gif"
> | > | > | width="480" height="379"></p>
> | > | > | </td>
> | > | > | <td style="border-style: none; border-width: medium">
> | > | > | **** English text ****
> | > | > | </td>
> | > | > | </tr>
> | > | > | <tr>
> | > | > | <td style="border-style: none; border-width: medium">
> | > | > | <p align="center"><a href="/language.php?ln=NL"><img
> border="0"
> | > | > | src="knoppen/vlagNL.jpg" width="165" height="100" alt="Klik
> hier,
> | > | > wanneer
> | > | > u
> | > | > | de site in het Nederlands wilt lezen."></a>
> | > | > | </td>
> | > | > | <td style="border-style: none; border-width: medium">
> | > | > | </td>
> | > | > | <td style="border-style: none; border-width: medium">
> | > | > | <p align="center"><a href="/language.php?ln=EN"><img
> border="0"
> | > | > | src="knoppen/vlagEN.jpg" width="165" height="100" alt="Click
> here,
> | > when
> | > | > you
> | > | > | like to read the website in English."></a>
> | > | > | </td>
> | > | > | </tr>
> | > | > | </table>
> | > | > | </div>
> | > | > | <p align="center"><font size="1">Laatste wijziging / Last
> change:
> | > | > | <?php
> | > | > | }
> | > | > | ?>
> | > | > |
> | > | > | <!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d-%m-%Y"
> | > | > | startspan -->11-10-2006<!--webbot bot="Timestamp"
> i-checksum="12558"
> | > | > | endspan --></font></p>
> | > | > | </body>
> | > | > | </html>
> | > | > |
> | > | >
> | >
> || --------------------------------------------------------------------------
> | ------
> | > | > | Mijn Postvak In wordt beschermd door SPAMfighter
> | > | > | 4017 spam-mails zijn er tot op heden geblokkeerd.
> | > | > | Download de gratis SPAMfighter vandaag nog!
> | > | > |
> | > | > |
> | > | >
> | > | >
> | > |
> | >
> || --------------------------------------------------------------------------
> | ------
> | > | Mijn Postvak In wordt beschermd door SPAMfighter
> | > | 4017 spam-mails zijn er tot op heden geblokkeerd.
> | > | Download de gratis SPAMfighter vandaag nog!
> | > |
> | > |
> | >
> | >
> |
> |
> |
>
>
--------------------------------------------------------------------------------
Mijn Postvak In wordt beschermd door SPAMfighter
4017 spam-mails zijn er tot op heden geblokkeerd.
Download de gratis SPAMfighter vandaag nog!
--------------------------------------------------------------------------------
Mijn Postvak In wordt beschermd door SPAMfighter
4017 spam-mails zijn er tot op heden geblokkeerd.
Download de gratis SPAMfighter vandaag nog!
--------------------------------------------------------------------------------
Mijn Postvak In wordt beschermd door SPAMfighter
4017 spam-mails zijn er tot op heden geblokkeerd.
Download de gratis SPAMfighter vandaag nog!
--------------------------------------------------------------------------------
Mijn Postvak In wordt beschermd door SPAMfighter
4017 spam-mails zijn er tot op heden geblokkeerd.
Download de gratis SPAMfighter vandaag nog!
--------------------------------------------------------------------------------
Mijn Postvak In wordt beschermd door SPAMfighter
4017 spam-mails zijn er tot op heden geblokkeerd.
Download de gratis SPAMfighter vandaag nog!
--------------------------------------------------------------------------------
Mijn Postvak In wordt beschermd door SPAMfighter
4017 spam-mails zijn er tot op heden geblokkeerd.
Download de gratis SPAMfighter vandaag nog!
--------------------------------------------------------------------------------
Mijn Postvak In wordt beschermd door SPAMfighter
4017 spam-mails zijn er tot op heden geblokkeerd.
Download de gratis SPAMfighter vandaag nog!
--------------------------------------------------------------------------------
Mijn Postvak In wordt beschermd door SPAMfighter
4017 spam-mails zijn er tot op heden geblokkeerd.
Download de gratis SPAMfighter vandaag nog!
--------------------------------------------------------------------------------
Mijn Postvak In wordt beschermd door SPAMfighter
4017 spam-mails zijn er tot op heden geblokkeerd.
Download de gratis SPAMfighter vandaag nog!
Navigation:
[Reply to this message]
|