Jump to content
InvisionCommunity.de - Der Deutsche Invision Community Support
Sign in to follow this  
craxelburger

[Suche] Language-Selector

Recommended Posts

Also, ich versuchs mal zu erklären:

Ich möchte gerne mehrere Versionen meines Boards online stellen. Eine deutsche, eine englische und eine französische.

Ist es schwer einen Sprach-Selector zu installieren der noch vor das Portal geschaltet wird? (Z.B. eine Länderfahne auf die man klicken muss.)

Es soll damit gesetzt werden:

1.) die ganz normalen Sprach-Variablen

2.) eine jeweilige Portal-URL soll aufgerufen werden

3.) für jede Sprache sollen andere Foren gezeigt bzw. ausgeblendet werden, da ich keinen Mischmasch möchte

Klar könnte man ganz einfach sagen "Installier doch Dein Board für jede Sprache extra", aber genau das will ich vermeiden, da ich nicht jeden Mod und Skin 3mal einbauen will und die Seite bis auf die Sprache identisch sein soll.

Vielleicht könnt ihr mir da helfen, da es bestimmt nicht unlösbar ist. :(

Ich denke das die einzige Schwierigkeit bei Punkt 3 liegt, der mit Punkt 1 verknüpft werden muss (das heisst ich bräuchte eine zusätzliche Sprachenoption bei den Foreneinstellungen im ACP).

Edited by craxelburger

Share this post


Link to post

jo, da gibts nen mod auf ibplanet.com .... mit flaggen, ich hab ihn selber eingebaut. kann dir leider die url nicht schicken, da ibplanet.com wohl grad auf nen neuen server umzieht. ich hab dir ne pm mit ner url geschickt, kannst ja mal antesten :)

Share this post


Link to post

soory ich hätte bis zum ende lesen müssen....

punkt 1 ok

punkt 2 auch ok

punkt 3 stelle ich mir etwas schwierig vor ist aber auch machbar, ich habe meine faqs auch in 3 sprachen und die werden schliesslich aus der db gezogen.

Share this post


Link to post

Sowas sollte leicht machbar sein. Du kannst dann Später über die URL die Sprache wählen, sowas hatte Stefan mir mal für Skins gebastelt, und das kann er dir bestimmt auch für die Sprachen machen. (Wird dann nachher also über die index.php?act=idx&lang=2 oder so aufgerufen)

Share this post


Link to post

@Rigo, wie gesagt so was gibts auf ibplant.com (wenn der Server wieder läuft) Author war glaub ich jpys (oder so ähnlich).

Die Schwierigkeit sehe ich bei Punkt 3. Man müsste eigentlich für jede Sprache eine eigenen table ibf_forums, ibf_topics und ibf_posts erstellen. Ich würde die table um die language variable erweitern. Also für deutsch ibf_forums_de bzw. für Englisch ibf_forums_en ... Sonst denke ich hat man die Sprachen in den Foren vermixt, oder nicht?

Share this post


Link to post

Also ich hab jetzt so einen Mod gefunden für die Sprachauswahl.

Allerdings hab ich keinen Plan wie ich das mit Punkt 3 regeln kann... :(:(

Es müsste halt noch so eine ACP Forenoption geben die die Sprache des jeweiligen Forums definiert. z.B. de/en/alle

Hier der Mod:

Mod Name:      DIGILOG - Choose Language by Flags

Based on: Fast language switching including Guest's (2thed)

Created by:    DigiLog multimedia, www.digilog.de, Jörg Wagner

For:            Invision Board 1.1                                   

Tested With:    Invision Board 1.1 FINAL

Last Updated:  2003 02 19                                           

------------------------------------------------------

1. Open /index.php

------------------------------------------------------

Find:

$ibforums->lang_id = $ibforums->member['language'] ? $ibforums->member['language'] : $ibforums->vars['default_language'];

and REPLACE with THIS:

//*BEGIN MOD:  DIGILOG - Choose Language by Flags

//$ibforums->lang_id = $ibforums->member['language'] ? $ibforums->member['language'] : $ibforums->vars['default_language'];

if  ( $HTTP_GET_VARS['langid'] ){

$ibforums->lang_id = $HTTP_GET_VARS['langid'];

if ( $ibforums->member['id'] != 0 ){

  $DB->query("UPDATE ibf_members SET language='".$HTTP_GET_VARS['langid']."' where id=".$ibforums->member['id']);

  // you thought the database updated itself magically?

}

}else{

if ( $ibforums->member['id'] != 0 ){

  $ibforums->lang_id = $ibforums->member['language'] ? $ibforums->member['language'] : $ibforums->vars['default_language'];

}else{

  $ibforums->lang_id = $HTTP_COOKIE_VARS['language'] ? $HTTP_COOKIE_VARS['language'] : $ibforums->vars['default_language'] ;

}

}

// set cookie if chosen language is not equal to default language

if ( $ibforums->lang_id != $ibforums->vars['default_language'] ){

setcookie('language', $ibforums->lang_id, time()+60*60*24*10, '/');

}else{

if($HTTP_COOKIE_VARS['language'])  setcookie('language', "", time()-999, '/');  // erase cookie

}

$DB->query("SELECT lname, ldir FROM ibf_languages ORDER BY lid");

$ibforums->langlist = "";

// $qstr = existing CGI param string (regex removes any old langid params)

$qstr = preg_replace("/&?langid=[^&]*/i", "", $HTTP_SERVER_VARS['QUERY_STRING']);

while( $getlang = $DB->fetch_row() ){

$ibforums->langlist .= "<a href=\"index.php?{$qstr}&langid=".$getlang['ldir']."\"><img src='{$ibforums->vars['img_url']}/Flag_".$getlang['lname'].".gif' alt='".$getlang['lname']."' border='0' vspace='5'></a>&nbsp;&nbsp;";

}

//*END MOD:    DIGILOG - Choose Language by Flags

------------------------------------------------------

2. Open /sources/Register.php

------------------------------------------------------

Find:

function create_account() {

global $ibforums, $std, $DB, $print, $HTTP_POST_VARS;

and REPLACE with THIS:

function create_account() {

//*BEGIN MOD:  DIGILOG - Choose Language by Flags

global $ibforums, $std, $DB, $print, $HTTP_POST_VARS, $HTTP_COOKIE_VARS;

//*END MOD:    DIGILOG - Choose Language by Flags

Find:

'language'        => $ibforums->vars['default_language'],

and REPLACE with THIS:

//*BEGIN MOD:  DIGILOG - Choose Language by Flags

'language'        => $HTTP_COOKIE_VARS['language'] ? $HTTP_COOKIE_VARS['language'] : $ibforums->vars['default_language'],

//*END MOD:    DIGILOG - Choose Language by Flags

------------------------------------------------------

3. Open AdminCP and go to...

"Skin & Templates -> Manage HTML Templates -> Manage HTML -> Global HTML Elements -> Board Header -> Edit"

This must be done for each of your skins if you want it to work for all of them.

------------------------------------------------------

Find the line:

      <td align='right' valign='middle' background='{$ibforums->vars['img_url']}/header_tile.gif'><!--IBF.BANNER--></td>

     

and CHANGE it to:

      <td align='right' valign='bottom' background='{$ibforums->vars['img_url']}/header_tile.gif'><div align='right'>{$ibforums->langlist}</div><!--IBF.BANNER--></td>

Attention:

This line can also be found in "/Skin/s*/skin_global.php" but you should NOT change it there.

Change it in the AdminCP as described here otherwise your database will be inconsistent with your

php files and later changes in the AdminCP might overwrite your edits.

------------------------------------------------------

4. In AdminCP go to "Languages - Manage Languages"

Check the Titles of your languages, if neccessary change them to single words without any white spaces,

as those titles will now be used as part of the names of the flag images in the /style_images/ folder.

It's best to use simple titles like "English", "Deutsch", "Francais" without any special characters.

------------------------------------------------------

------------------------------------------------------

5. Upload gif files with flag images to all your /style_images/ folders

and name them as you named you languages, but with a prefix of "Flag_":

Flag_English.gif, Flag_Deutsch.gif, Flag_Francais.gif,...

as many as you have languages installed.

If you like our flag style, use the included Photoshop file to create your own:

Get a flag (e.g. from http://www.flags.ndirect.co.uk/ ), scale it to 24x15px and copy the Pshop Layer Effects.

Export for web as GIF with 16 or 32 colors.

------------------------------------------------------

------------------------------------------------------

6. To call your board with a differing startup language

(e.g. from a multilingual website) use a cgi parameter:

http://www.mysite.com/forum/?langid=en

http://www.mysite.com/forum/?langid=2

http://www.mysite.com/forum/?langid=3

In this example "en" stands for English,

"2" stands for your second installed language,

"3" stands for your third installed language and so on.

------------------------------------------------------

That's it :)

If you like you can combine this mod with the mod "DIGILOG - Add language variable to macros",

to get buttons that switch their language together with the rest of the board.

Enjoy!

--------------

  HISTORY:

--------------

v1.1 - 2003/02/22

- Currently selected language is now kept when a new user is registered (becomes default language for new user)

- Currently selected language is now kept when changing from logged-on to logged-off state

- Cookie is now used only if selected language differs from boards default language

- Switching the language _immediatelly_ before logging in will switch the language of the user after log-in (if it differs)

- Spanish Flag and Photoshop template for Flag generation added

Code differences to v1.0:

- Changes to the modifications in:  /index.php

- Introducing new modifications to:  /sources/Register.php

v1.0 - 2003/02/19

- Released

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this  

×