Multi language, how to approach this?

Hi everyone,
I have a website on which I want to offer multi language, but no idea what is the best way to do this.
There 2 plans I have:
1:
Of course all content (text) is in a database.
If a user would want a different language, the user would click on a link/flag, this would put the requested language in a session variable, for example: session.language = "es"
In the database I would have 2 columns (every language has 1 column) and then select the text which belongs to 'es'
Every page would then do a request to the database to get the text beloging to the session.language.
PROS: Relatively simple to implement
CONS: SEO wise I don't think this could be very good. http://www.domain.com/page.cfm would give an english text or spanish text (or other language). Google will not add duplicate URL's
2:
Do something with http://www.domain.com/en/page.cfm for english and http://www.domain.com/es/page.cfm for english.
With a URL rewrite rule the language value in the URL http://www.domain.com/en/page.cfm would actually be a page http://www.domain.com/page.cfm?language=en
The url.language variable will then select the correct language from the database.
PROS: Unique URL for each language. Good for SEO and Google indexing.
CONS: A bit more difficult to implement. (I think)
Or does anyone have other / better ideas?
Thanks!!

You kind of mix two different considerations partially in your two options here: how to identify the language (mentioned in both points), and how the data is stored (only mentioned in the first one).
We use the second approach for identifying which language site one is on, except we use a subdomain instead of an element in the path (eg: we have es.domain.com, fr.domain.com etc, rather than www.domain.com/es/ and www.domain.com/fr/).  However I think that's neither here nor there.  The rewrite is simple to set up, and a one-off, so there's no real penalty there.
As for how the data is stored, we've got a bit of a hotch-potch depending on which text it is.  Structural stuff which is fairly static (eg: in the breadcrumbs the text saying "You are here") we have in .properties files.  Slightly more frequently "managed" text like SEO-sensitive stuff is stored in a slightly different text-file-based system, due to who maintains said content.  Other (more volatile) content still is managed via a CMS.  This is basically down to which dept manages which text (as well as legacy issues like different people having different ideas as to how things ought to be done,if I'm honest).  The text-file-based stuff is loaded once at app-start-up, and the DB-stored stuff is called as necessary (with some CF & DB-side caching depending on what it is).
The text-file-based stuff is applied to a page in the way Steve suggests.  The DB stuff is just output as per normal fetched-query content.
You might want to read up on how Java handles this sort of thing, to get a fairly coherent picture of an accepted / standardised approach to such things.  Start with http://docs.oracle.com/javase/6/docs/api/java/util/ResourceBundle.html and google "java ResourceBundle".
Adam

Similar Messages

  • How to approach this requirment

    Business  overview:
    For every organisation account management will be the core functionality. The account management should include the following:
    customer - company - vendor.
    1. customer info
    2. vendor info
    3.organisation info
    4.material info
    5.purchase order info
    6.sales order info
    7.subsequent documents such as delivery doc,invoice doc n accounting doc info.
    Reports:
    1.purchase order line item wise report.
    2.open purchase order.
    3.sales order line item wise report.
    4.open sales order report.
    5.open invoice item wise.
    Im new to ABAP, pl someone guide me how to approach this requirment. Which r the tables n fields i need to work with?
    Thank you.

    Hi Ashwini,
    I am giving you some of the important details of tables as per your requirement.But there could be more tables than i am providing.
    Just a list of tables that come in handy.
    Sales orders
    Name       Description                                 Uses
         LIKP       Shipped Lines header   
         LIPS       Shipped Lines detail  
         VBAK     Order header                             Every order (unless archiving)
         VBAP     Table fields                               Every line item (unless archiving)
         VBBE     Open sales order line items       Great file, but be careful.Contents don't reflect orders
                                                                       that  do not affect purchasing (go figure).
         VBEP      Schedule line item   
         VBFA      Document flow                         Let's you move from order to shipping document to invoice.
         VBUK      Order status   
         VBUP      Line item detail status   
         VBFK      Invoicing header   
         VBFP      Invoicing detail  
    Material Management
    Name        Description                                   Uses
        MARA      Inventory Master 
        MARC           Plant Data 
        MARD      Current Inventory 
        MAKT       Descriptions 
        MBEW      Material Valuation 
        T179         Product Hierarchy  
        MVKE       Sales data (materials) 
        MKPF      Material document                     Status code 'R' in VBFA
    Purchasing
    Name      Description                                       Uses
       EINA       Purchasing inforecord                 by MATNR/LIFNR contains things like vendor material
                                                                      number and access key for EINE 
       EINE       Purchasing inforecord detail        Contains minimum purchase, group, currency 
       EKPO     Purchase orders   
       EKET      Scheduled lines   
       EKES     Vendor confirmed lines
       IKPF       Header- Physical Inventory Document
       ISEG      Physical Inventory Document Items
       LFA1      Vendor Master (General section)
       LFB1      Vendor Master (Company Code)
       NRIV      Number range intervals
       RESB     Reservation/dependent requirements
       T161T     Texts for Purchasing Document Types
    Forecasting
    Name      Description                                          Uses
       MAPR  
       PROP  
       PROW  
    Classification
    Name             Description                                            Uses
       KSSK            Material number to class 
       KLAS             Class description 
       KSML             Characteristic name 
    CABN/CABNT     Characteristic name description 
    CAWN/CAWNT   Characteristic name 
       AUSP              Numeric values 
      CAUFV             Service order header 
       AFPO              Service order line                          Holds items that will create "reservations"
      RESB               SM Reservations                                 Materials needed for line
    Customer Data
    KNA1        Customer Master  
    KNVV        Sales information   
    KNVP        Partners (ship-to, etc)   
    Since you are new to abap, its better you to know the system tables and other tables for configuring: 
    System tables
    Name       Description                   Uses
      DD02T      Table texts 
      DD03L      Table fields               Lists the fields in a table
      DD04T    Data element texts 
      USR02    Valid user names 
    Config tables (normally begin with "T")
    Name       Description                              Uses
      T001            Client table 
      T002            Languages 
      T005           Region (Country) 
      TCURR        Currency and exchange rates 
      TVAK         Order type 
      TVSB          Shipping condition  
      TVAGT        Rejected reason for order line  
    Other tables
    Name        Description                              Uses
      STXH           Text header 
      STXL            Text detail
    Reward points if useful.
    Thnakyou,
    Regards.

  • How to approach this requirement

    Business  overview:
    For every organisation account management will be the core functionality. The account management should include the foll:
    customer - company - vendor.
    1. customer info
    2. vendor info
    3.organisation info
    4.material info
    5.purchase order info
    6.sales order info
    7.subsequent documents such as delivery doc,invoice doc n accounting doc info.
    Reports:
    1.purchase order line item wise report.
    2.open purchase order.
    3.sales order line item wise report.
    4.open sales order report.
    5.open invoice item wise.
    Im new to ABAP, Please someone guide me how to approach this requirement. Which are the tables and fields i need to work with?
    Thank You.
    Ashwini

    Hi:
    Refer to SAP Tables in this documentation.
    http://www.erpgenie.com/abap/tables.htm
    You will find the realted fields in the weblink.If you are not unable to find the field and table, go to functional consultant and ask him about the filed.
    he will show you and click on F1.you can see the techncail information.Click on this and you will see table name and field name.
    Please let me know if you need more information.
    Assign points if useful.
    Regards
    Sridhar M

  • How to approach this scenario (Many to Many). A bit confused

    Hi all,
    I have a scenario where I am confused and am looking for some guidance. Let me explain the scenario I have.
    I have an Item Table (Which will be used to create Item Dimension) :
    ItemID
    ItemName
    Item1
    ItemName1
    Item2
    ItemName2
    Item3
    ItemName3
    Item4
    ItemName4
    I have a Promo Table (Which will be used to create Promo Dimension) :
    PromoID
    PromoName
    1
    Promo1
    2
    Promo2
    3
    Promo3
    4
    Promo4
    I have a Promo Lines table (This is lines for promotion but here is the confusion):
    PromoID
    LineNum
    ItemID
    Activity
    1
    1
    Item1
    Activity2
    1
    2
    Item2
    Activity1
    1
    3
    Item3
    Activity3
    2
    1
    Item2
    Activity2
    3
    1
    Item3
    Activity1
    3
    2
    Item1
    Activity3
    4
    1
    Item2
    Activity2
    4
    2
    Item1
    Activity1
    I have a Transaction table "Sales Order Trans Table". This will be used to create "SalesOrderLine" Measure group (Fact) :
    SalesOrderNumber
    SalesAmount
    ItemId
    SO1
    100
    Item1
    SO1
    234
    Item2
    SO2
    345
    Item3
    SO2
    456
    Item1
    SO2
    567
    Item2
    SO3
    234
    Item2
    SO3
    345
    Item1
    SO3
    343
    Item3
    SO4
    234
    Item2
    SO4
    765
    Item1
    SO5
    567
    Item3
    SO5
    345
    Item2
    SO5
    234
    Item1
    Now in my cube I need these :
    Item Dimension :
    ItemID --> ItemID column of Item Table
    ItemName --> ItemName column of Item Table
    SalesOrderLines Measure Group
    Sales Amount --> Sum on SalesAmount column of Sales Order Trans table
    Sales Lines Count --> Count of rows of Sales Order Trans Table
    Promo Dimension:
    PromoID -->  PromoID of Promo Table
    PromoName --> PromoName of Promo table
    Activity --> Activity of Promo Lines Table
    Solution I have thought
    The Item dimension is straight forward and relation with Measure group is a regular on ItemId --> ItemId. So no issues here
    The Promo dimension  can be made easily from Promo table with promo Id as Key column. The relationship with fact is confusing me.
    For the Promo Dimension, Since it is many to many relationship between Promo and Item , I initially thought of using the PromoLines Table as a Fact less fact Measure group and using that as intermediary measure group in a Many-to-Many Dimensional usage between
    the Promo dimension and SalesOrderLines Measure group.
    The problem is the Activity attribute that is required on Promo dimension. if I use the PromotionLines in the dimension, I will get the activity, but what will I keep as key attribute(As One attribute is related to one or many lines).
    I am very confused with this. Any thoughts on how to resolve this or any suggestion will be very helpful.
    Thanks,
    Girija Shankar
    Please mark responses as answered if it helped you.. This helps others... - Girija Shankar Beuria

    You are on the right track. Create the SalesOrderLine measure group. Create the Item dimension. This will be your intermediate dimension. Create a measure group off PromotionLines with a hidden count measure. This is your intermediate measure group. Create
    a dimension off the Activity column (that's the key) and relate that dimension with a regular relationship to the PromotionLines measure group. This will be the first many-to-many dimension in SalesOrderLine. Create a Promo dimension with a regular relationship
    to the PromotionLines measure group and a many-to-many relationship to SalesOrderLine. This is the second many-to-many. Both m2m dimensions resolve through the same intermediate measure group.
    http://artisconsulting.com/Blogs/GregGalloway

  • Multi-Language - How to change labels and titles of standard iViews?

    Hi Portal Content Management Gurus,
    I would like to know how to translate the text parts of the standard SAP provided iViews in order to support multiple languages?
    I tried the Translation Worklist Coordination and Translation Worklist facilities provided in the portal. But not able to figure out where I am making the mistake. I am not able to get the translated iViews. I also checked the "include dependent objects" option. But not able to find out where will the generated resource bundles will be available.
    Can any body guide me?
    Thanks & best regds,
    Alag

    Hi Saravanan,
    I just tried changing the browser language. I am not able to see the "Content Provided by SAP" folder itself under the "Portal-Content" directory.
    (1) Is there anything else I need to do in order to see that folder?
    And when I try previewing the iViews after changing the browser language, still the iView content is displayed in English.
    (2) Can I make a copy of this iView and edit change the language property to some other language say "German"? In that case, I will have to maintain multiple copies of the same object. But I tried creating a delta link copy of the object. But was not able to edit and change the language.
    (3) Or do I have to edit it in the par file of the corresponding iView?
    best regds,
    Alagammai.

  • Jdeveloper Multi-language: How to start with a diffenent language?

    I am using jdeveloper version 11.1.1.3.0 on linux. How can I start my jdeveloper in a different language other than the OS language setting? I want to change the display of my jdeveloper to a different language (i.e French).
    I tried the following:
    Modified the jdev.conf file in jdev/bin folder to add the following JVM parameter.
    AddVMOption -Duser.language=fr
    AddVMOption -Duser.country=FR
    Then, when I start the jdeveloper, I get the following info message:
    INFO: Locale fr_FR is not supported by this product. Forcing locale to en_US.
    any idea?
    Thanks

    Thanks for the reply. I am actually creating a jdeveloper extension and like to support multiple language for that extension. I created properties resource bundle files (i.e bundlename.properties, bundlename_fr.properties) file and put all my text there. Then I use a method in java class to extract those text values which looks like the following:
        private static String getStringForBundle(String key, Locale locale){
            if(locale == null){
                locale = Locale.getDefault();
            ResourceBundle bundle;
            if (locale != null){
                bundle = ResourceBundle.getBundle(BUNDLE_NAME,locale);
            else
                bundle = ResourceBundle.getBundle(BUNDLE_NAME);
            return bundle.getString(key);
        }I like to test this extension in French or other language, So, I wanted to start the jdeveloper with that language. Can I do that?
    I modified the jdev.conf file to add the following
    AddVMOption -Duser.language=ja
    AddVMOption -Duser.country=JP
    As you mentioned, jdeveloper supports japanese language, I can see it's been translated to japanese. Now, if jdeveloper only support japanese, then does it mean that my jdev extension will also only support japanese?
    Thanks
    Edited by: user599422 on Oct 29, 2010 4:19 PM
    I got my answer. Jdeveloper only support Japanese language other than English. Since, jdeveloper only supports japanese language, it's extension will also only support Japanese and English(same JVM).
    Edited by: arafique on Nov 1, 2010 9:56 AM

  • Advice needed on how to approach this, passing around strings

    Hello everyone,
    I'm new to network programming and I was just wondering if I could get some clarification and some advice on networking.
    Right now I have a serversocket program that accepts a connection from another server that is sending large strings (events), my server socket program takes these strings (events) and parses them and up stores them into an object and then into a multi-map.
    Now I'm going to take these events and turn them into a string again, and send them to a receiver.
    I'm confused on the processes of how this will happen.
    My Sever Socket program creates a server socket, and listens on port 5656, the program thats sending me the strings (events) connects to socket 5656, and starts sending me data.
    Now once this data is processed and stored as a message object, then what do I have to do to send it off to another program?
    Do I open up another Sever Socket, and listen on port 5000, then when that other reciever program connects to 5000 it will start sending those strings to it?
    If this is the case, what if there is no connection to 5000 to recieve the strings I'm going to send to it? Would I need to maybe store all the strings in a vector and when the client connects to port 5000, should I just start sending them from the vector?
    Or should the recieving application be also a server? So as soon as I get my first string, I can just use the Socket class, rather than the ServerSocket to create a connection like: Socket echoSocket = new Socket("taranis", 5000); Asumming taranis is the name of the server that wants the strings I parsed.
    So my application will have a SocketServer to accept the incoming string, then it will create a Socket and connect to another server to send the string?
    Thanks :D

    Or should the recieving application be also a server?That seems like much the better alternative.
    BTW why don't you just pass the events around in their original form, using Serialization, rather than string-ifying and de-stringifying them everywhere?

  • Title with incremental number -- how to approach this when editing in Premiere CS4

    Ok, I'm not sure if this is possible, but here is what I would like to accomplish:
    I've recorded a Tour in Google Earth Pro - you know the camera 'flying' from placemark to placemark. I've measured the amount of kilometers between placemarks. What I would like to do is to display a title/number in the left top of the screen in Premiere which displays the number of KMs traveled, incrementing when the camera flies. I need dynamic text that increments e.g. from 0 to 2000 KMs from frame 1 to 500. I'm not sure which approach is best to accomplish this, and if it can be accomplished inside of Adobe Premiere. Thanks for the support. Best regards,

    You may have to look at After Effects for something like this.

  • Having some problems thinking how to approach this...

    // Design and implement a class called PairOfDice, with two six-sided
    // Die objects. Create a driver class called BoxCars with a main method
    // that rolls a PairOfDice object 1000 time, counting the number of box
    // cars (two sixes) that occur.
    Ok, im really new to this whole class linking things. Ok first i dont know how to create the two Die objects as one and have them rolled using the BoxCars class. Can somebody help me in the right direction ?
    Also, what is a driver class?
    This is what i have so far, but i believe its wrong..
    import cs1.Keyboard;
    import java.util.Random;
    public class P4_4
         // Creates the two Six-Sided Die Objects
         public class PairOfDice
              PairOfDice Die = new Die();
         // Rolls PairOfDice 1000 times
         public class BoxCars
              public static void main (String[] args)
              protected int numSides = 6;
              numSides = BoxCars;
              for(int i=0; i<=1000 ;i++)
                   // checks if the two die objects are both 6's and adds them together
                   if (Die.... )
    }Thanks, ps2cho

    In your earlier thread here
    http://forum.java.sun.com/thread.jspa?threadID=686288&messageID=3993794#3993794
    you have been given almost the entire answer. What is the problem?
    Take the problem statement and break it up into smaller parts:
    // Design and implement a class called PairOfDice,
    Create a class named PairOfDice
    // with two six-sided Die objects.
    Create 2 objects in the class, each one representing a die. For this whole thing to work, you have to be able to toss both dies, and get back a random number from 1 to 6 for each. And this has to occur each time the class is called.
    // Create a driver class called BoxCars with a main method
    // that rolls a PairOfDice object 1000 time, counting the number of box
    // cars (two sixes) that occur.
    Create a class named BoxCars that instantiates and then calls PairOfDice 1000 times, recording the results of each call.

  • Storage location description in multi language

    Hi All,
    We have requirement to maintain the storage location description in multi language, is it possible? If so, how?
    Thanks in advance,
    Ravi

    Hi,
    Storage location - Description in Multi language is not possible (This is Langueage independent).
    Regards,
    Siva
    Edited by: Siva Kumar M on Sep 27, 2010 3:23 PM

  • Multi-Language Planning application - How to build?

    Hello,
    I might need to create a multi-language application for English, Spanish, and French users. I understand that installation localization will support multi-language user interface. However I need pointers on how to go about creating an app with minimal maintenance.
    How do deal with following?
    -> Member names: This can be handled through alias tables.
    -> Web forms : Should we create similar forms in different languages?
    -> Reports: Similar reports in different languages?
    -> Business Rules / Calcs: how display names in different langugaes?
    Thanks,
    Amit

    You only want a single WindowedApplication component in an
    AIR application. For the other windows, use the Window component.
    You can then create this window object in response to the user's
    menu selection. See
    http://www.adobe.com/devnet/air/flex/quickstart/launching_windows.html
    for examples of opening windows.

  • Multi-language report in XML publisher (This is urgent!!)

    Hi All,
    i am working on Multi-Language report. We have installed just 3 languages (English, Japaneese, Spanish) but my requirement is to display the reports in few more un-installed languages like Korea, chineese etc. I thought of doing the lables (all hard coded fields) translation using .XLIFF file. When i try to run the report, in language settings (this is the place where the XML report takes the language input) i can see only those languages which are installed. How can pass other languages (un-installed) as a parameter in the XML report?
    Please suggest. It is very urgent.
    Thanks,
    AS

    Hello,
    The OTN forum for XML Publisher (now called BI Publisher) is here :
    BI Publisher
    Regards

  • How to install multi language in Portal?

    Hi,
    Can someone give me the directions in how to install multi
    language in Portal? I found the "langinst.cmd" file under
    ORACLE_HOME\portal30\admin\plsql, also another
    file "langinst.sql" under ORACLE_HOME\portal30
    \admin\plsql\nlsres.
    I am not quite sure how I can do that, which file I should use.
    And once I installed the multi language, can I just go into
    portal to create a new content area and using the multi language?
    Thanks for any comment in advance!
    Kelly.

    Hi Kelly
    You need to identify parameters for this file and run file. Its
    langinst.cmd for WINNT and langinst.csh for UNIX.
    1.     From the dos prompt , go to the following directory on
    your server.
         Oracle/iSuites/portal30/admin/plsql/
    2.     Set the Oracle_Home to = oracle/iSuites/
    3.     Run the command
    langinst.csh -s portal30 -p portal30 -o
    PORTAL30_SSO -d PORTAL30_SSO -c oid -l ar -available
    s - schema
    p - password
    o - < login server - in your case it may be portal30_SSO >
    d - <password- maybe portal30_sso>
    c - connect string
    l - language (which is set to ar )
    ar is arabic which i ve set
    Good Luck
    Regards
    Yogesh

  • Which language is better to develop the software that controls the Tektronix-Sony 370A Curve tracer and how to approach it?

    Which language is better to develop the software that controls the Tektronix-Sony 370A Curve tracer and how to approach it. I a a fresher in this field. Please any one help us developing the software.

    If you're looking to develop a driver for the instrument, one already exists and can be download here or you can get it off of the driver disk that comes with LabVIEW. If you're asking for the best language in which to write an application program that uses the driver, the obviously the answer is going to be LabVIEW. Note that you might get a different answer if you post the question to a Visual Basic or C++ forum but those answers would be wrong.
    Message Edited by Support on 11-26-2008 01:33 PM
    Message Edited by Support on 02-17-2009 09:30 AM

  • How the master data of multi language is shared in the info cubes

    hi frindz,
    how the master data of multi language is shared in the info cubes
                                                                     bye bye
                                                                      venkata ramana reddy.G

    Hi Ventak,
    In the infocube you have the key. Then you have a text master data table that has as key (for the table) the key of the value (the one in the cube) and the language, and the text in that language as another field (short, med, long).
    Hope this helps.
    Regards,
    Diego

Maybe you are looking for