This application is related to U.S. patent application Ser. No. 10/066,368, titled “Method to Dynamically Determine a User's Language for the Internet,” filed Jan. 30, 2002.
This invention pertains to network access, and more particularly to accessing content over a network in a format preferred by the user.
The Internet has become a resource of incredible power for many people. The ability to locate information on almost any subject, simply by using a computer, has made possible whole new avenues of research. Users can locate information on their subject of choice almost as simply as by asking a question.
But language issues complicate the use of the Internet. Although English is currently the dominant language of the Internet, it is by no means the only language available. Content pages exist in just about every written language on the face of the planet.
Since there are very few people who can read every written language, different language versions of content pages can be provided. Thus, for example, a person who is comfortable communicating in English can view a content page written in English, whereas a Japanese native can view a content page prepared in Japanese.
The original way users specified the language in which they viewed material was by knowing the uniform resource locator (URL) of the content site written in that language. Thus, for example, if a site provided a content page in both English and Japanese formats, the user had to know the URL of the English content page to view the page in English, or the URL of the Japanese content page to view the page in Japanese.
But there is a significant handicap to the approach of having the user specify by URL the preferred language for display in the browser. If the user does not know the correct URL, the user cannot see the material in the preferred language.
More recently, browsers have added the capability to specify a preferred language as a setting for the browser. The user then only needs to know the URL for the main content page. Processing the URL by the browser includes sending the preferred language to the content site (as shown by arrow 135). This information is included in the header of a packet sent from the browser to the content site. Then, it becomes the responsibility of the content site to process the header information, determine the preferred language, and display the content page in the preferred language (assuming the content site includes the content page in the preferred language).
But still problems remain. Problems lie in defining the user's preferred language. Although the user does not need to specify for each content page the preferred language for display of the content page, the user still has to set the browser up to know the preferred language. This requires a manual step by the user on his computer. Further, every time the user changes computers, the browser on the new computer must be configured to know the preferred language. Finally, if the user uses a computer that is not dedicated to him (for example, the user works on a locally public machine or on machines dedicated primarily to other users), changing the preferred language would affect other users, perhaps to their displeasure (if the other users prefer a different language).
Problems also exist in displaying content to the user in the desired language. The earlier-described technique of assembling a content page with a unique URL for each different language is a straightforward solution, but has flaws. First, someone must craft a version of the content page in each possible language. The straightforward approach typically involves generating a master version of the content page in one language (e.g., English) and then translating the master version into all of the target languages. Given the number of languages that exist and the complexity of accurate translation of documents, this is by no means a simple task.
Second, when the content on the master version of the content page changes, the content on each of the translated versions must be changed to match. Again, given the number of languages and the complexity of accurate translation, this can be costly.
Third, a file naming convention, consistent across the entire network, is required. The user must know this naming convention, and must modify the URL of the content page to reflect the desired language. Conceivably, the task of modifying the URL can be shifted to the browser, but then the browser must be given specialized knowledge to know when not to modify a URL (e.g., when the user wishes to view a content page in a language other than the default). If the content provider does not conform to the file naming convention, then the user will not be able to access the content. In addition, if the content provider does not provide the content page in the language specified by the user, the user will be told that the content page does not exist, when it might exist in another language.
Accordingly, a need remains for a way to provide a content page to a user in a desired language that allows for easy content creation and update in multiple languages and saves the user or browser from having to guess at the appropriate URL for the content page, to address these and other problems associated with the prior art.
An embodiment of the invention is a method and apparatus for displaying content to a user. A layout information file is located, which specifies a form for displaying content to the user. A layout strings file is located, and combined with the layout information file to present the content according to the layout information file.
In one particular embodiment, the layout strings file stores content in a specific language.
The foregoing and other features, objects, and advantages of the invention will become more readily apparent from the following detailed description, which proceeds with reference to the accompanying drawings.
Note that, in contrast to the prior art system shown in
Request 205 can specify other information for the content provider. For example, request 205 can specify the type of device on which the user is viewing the content. To specify the device on which the content is to be viewed, request 205 would indicate that the device is a standard monitor. But a person skilled in the art will recognize other types of devices: for example, portable devices.
Content page 120 is shown with two gadgets 210 and 215. A gadget is a piece of content that can be displayed on a content page. Note that a gadget can be the entire page, or it can be only one element of the entire content page. For an example of content, consider
Returning to
Because request 205 specified English and Spanish as the languages of choice, and both gadgets 210 and 215 support English, English languages 220 and 235 are selected (shown by the “flash” around languages 220 and 235. Note that the “flash” is simply for the reader to understand the figure, and is not actually shown directly to a user.)
In layout information file 405, title string 410 provides a title for the gadget. For example, if gadget 210 is for Stocks, title string 410 can be “Portfolio,” whereas if gadget 210 is for news, title string 410 can be “World News.” Title string 410 is one example of a layout string (sometimes called a language string). Layout strings are strings that are displayed on the gadget that are language dependent. Rather than storing the string directly on the content page, LIF 405 stores a placeholder for a layout string, which can be pulled from a layout strings file for the specific language (see below with reference to
A person skilled in the art will recognize that there are times when LIFs can be language dependent. For example, some languages are displayed right-to-left (such as Japanese, Hebrew, or Arabic). For these languages, a LIF that has the information displayed in a different presentation can be preferable. How LIFs are associated with particular languages is discussed further with reference to
Because content can be displayed in color, color stripe 415 can be behind title string 410. The color of color stripe 415 can be user-specified, or it can be specified by an administrator (in which case, the color is selected according to the same rules for all users). Administrator settings are discussed further below.
Graphic box 420 enables the content provider to specify graphic images that are language-specific. For example, advertisements on content pages are typically stored as images, but include text. By enabling graphic images to be language-dependent and treating graphic box 420 as a layout string, the graphic images presented to the user can also be language-dependent. In addition, graphic images can be context-dependent, as symbols can be recognized by speakers of some languages but not other languages.
Data strings 1 (440), 2 (445), and 3 (450), in contrast to text strings 1 (425), 2430, and 3 (435), are not layout strings. Instead, data strings 1 (440), 2 (445), and 3 (450) are data that can vary depending on the time the content is displayed, and are usually language independent. For example, if LIF 405 shows, in part, stock price information, data string 1 (440), 2 (445), and 3 (450) can show the values for the Dow Jones Industrial Average, the NASDAQ, and the S&P 500. Or data strings 1 (440), 2 (445), and 3 (450) can represent the values of three particular stocks of interest to the user. A person skilled in the art will recognize other information that can be displayed in data strings 1 (440), 2 (445), and 3 (450). The values for the data strings are provided by a content provider.
Although the data strings are described above as being generally language independent, a person skilled in the art will recognize that the data strings can be localized as well. For example, the fractional portion of a decimal number is separated from the whole portion of the number by a decimal point (“.”) in the United States. But in other countries, a comma (“,”) is used. The gadget that generates the data can take advantage of the selected language to localize the data accordingly. Nevertheless, such data is not stored in a layout strings file, as the data can vary with time much more readily than the text strings.
A person skilled in the art will recognize that LIF 405 is exemplary, and not a required format. Thus, there can be more or fewer than four layout strings, nor does there have to be a title string. Data does not have to be displayed, nor do graphic images. Data can be presented in any format desired by the content provider. In short, LIF 405 merely shows one possible layout information file, of which there are nearly infinite arrangements.
For example, LIF 455 shows an alternative layout information file. LIF 455 can be for a portable device, on which display area is at a premium. Thus, although LIF 455 includes title string 460 and text strings 1 (475), 2 (480), and 3 (485), color is not used to highlight title string 460, nor are data strings 1 (440), 2 (445), and 3 (450) provided for.
Data strings 1 (640), 2 (645), and 3 (650) are substituted with the actual data to be displayed on the content page. As described above with reference to
In contrast,
Each row in resource file map 705 lists a single valid combination of devices, layouts, and languages. Thus, row 725 indicates that the default device, default layout, and default language form a valid combination. Note that row 725 should be present in all resource file maps, since there needs to be a combination of devices, layouts, and languages that can be used when a more specific match cannot be found.
Rows 730-760 specify more specific combinations of devices, layouts, and languages. For example, rows 730, 735, and 740, respectively, indicate that English, Spanish, and French can be used with the default layout on the default device. Thus, if any of English, Spanish, or French is included in the ranked list of languages, the default layout can be used with the default device.
Row 745 indicates that the default device can be used with the Japanese layout and the Japanese language. Since Japanese is typically written in a right-to-left manner, a different layout can present information in a more meaningful manner to the user than the default layout (using a left-to-right presentation). Note that since there is no row in resource file map 705 using the Japanese layout for any other language, only the Japanese layout strings file is used with the Japanese layout.
Rows 750-760 indicate combinations of layouts and languages with the portable device. Specifically, row 750 indicates that the default layout for the portable device can be used with the default language. This combination ensures that when a portable device is used to display the content to the user, there is some way to display the data meaningfully for the device. If row 750 were not included in resource file map 705, then if the user indicated a preference for a language which was not mapped to any layout for the portable device, the default layout for the default device would be used (possibly with the default language, in case there is no combination of the default device with a layout compatible with the user's preferred language).
Rows 755 and 760 specify specific combinations of languages with the portable device. Note that, although Spanish and French are provided for, there is no English language specifically compatible with a LIF for the portable device in resource file map 705. If English is the default language, then a specific combination for English might not be an issue. Nevertheless, it would be preferable to include an entry for English with a LIF for the portable device, so that users with multiple language preferences get English if that is preferred over other languages (for which entries in resource file map 705 exist).
Selector 702 operates by first determining the type of device and the user's ranked list of languages from request 205. Specifically, selector 702 finds the combination of device, layout, and language that best fits the user's device and language preferences. In
What if row 760 were not in resource file map 705? Then there would be two choices for the closest match to the parameters of request 205. Specifically, the default language and default LIF can be used for portable devices, or the English language can be used with the default LIF for the default device. (Note that the use of Spanish with the default LIF on the default device is preempted by the user's preference of English over Spanish.) In one embodiment, the user's language preference is considered more important, and thus the default LIF for the default device is used with the user's preferred language. In another embodiment, the device is considered more important, and thus the default LIF for the portable device is used with the default language. Whether language support or device support is preferred in this situation can be decided when the gadget is implemented, or can be decided at the server level.
Sometimes, different LIFs can be provided to present content in the same language(s) on the same device(s). For example, gadget 210 might include a different LIF to present the content in English on the default device. The different LIF might simply provide an alternative presentation of data, and not be designed to support a language not otherwise supported by the default LIF. In this situation, request 205 can also specify the desired LIF.
Although
In addition to not necessarily having all of columns 710, 715, and 720 as shown in
Although
Skins 810 is the subdirectory storing information about each skin (i.e., LIF) available for the device. Each skin is assigned a name, one of which is Default 815. For example, in
Within each skin, two subdirectories exist. Images 820 stores the images associated with the skin for data presentation. For example, in
A moment is required to explain the naming convention, first encountered here with reference to Image 820 subdirectory. The default version of a file is named as desired by the content provider. Specific language versions are named by taking the name of the file (less any extension identifying a type for the file) and appending a language code and a country code to the file name. Thus, for example, in file stop_es_ES.jpg (830), the “_es” designates a Spanish layout strings file, whereas the _ES identifies the file as being for Spanish speakers from Spain. The reason both a language code and a country code are used lies in dialect or spelling variations that can exist between countries sharing a (generally) common language. Compare the American spelling of the word “favor” with the British spelling “favour,” as an example.
A person skilled in the art will recognize that the language code is important, so that the language of the layout strings file is identified. But a country code can be eliminated in some circumstances without significant (if any) loss of information. For example, although “favour” looks wrong as a spelling to American readers, they still will probably recognize the word. Similarly, the costs of localizing content for Spanish speakers from different countries can be avoided, since most Spanish speakers will recognize documents written in any dialect (up to regional slang variations).
Returning to
Main_lang.xsl 855 and its siblings store the layout strings (described above with reference to
Although the layout strings files 855-870 are shown only within Default 840 subdirectory of Default 815 skin, a person skilled in the art will understand that layout strings files, like LIFs, can be layout- and device-dependent. That is, not only can the presentation of the data vary depending on the device, but even the actual content presented can vary as well. In that case, there can be layout strings files in subdirectories for other devices and other skins Nevertheless, in the embodiment shown in
Images 880 subdirectory stores graphic image files that are constant across all skins. For example, pictures that are language- or context-independent can be stored in Images 880 subdirectory.
Finally, settings 885 stores settings that apply to the gadget. Such settings can include, among others, instructions to the user for editing the gadget (since instructions are written, they need to be presented in a language the user understands), definitions as to how the files in hierarchy 805 are to be interpreted, etc. For example, AvailableSettings.xml 890 is shown as an extensible mark-up language (XML) file. XML files include tags and values, but do not explain how the tags and values are to be used AvailableSettings.dtd 892 defines how the tags and values within AvailableSettings.xml (890) is interpreted. Similarly, AvailableSettings_en_US.dtd (895) and AvailableSettings_es_ES.dtd (897) define settings specific for American English and Spanish, respectively. Typically, these settings are configured by an administrator, but in some situations users can also configure gadgets.
At step 925, the content provider determines if there is a language- and device-specific layout information file for the gadget. If there is, then at step 930 that layout information file is selected. Otherwise, at step 935 (
A person skilled in the art will recognize that steps 935-940 and steps 945-950 can be swapped. That is, a layout information file favoring a specific device can be preferred over a layout information file favoring a specific language.
Regardless of which layout information file is selected in steps 925-955, at step 960 (
At step 980 (
Regardless of which layout strings file is selected, the layout strings from the selected layout strings file are formatted according to the selected layout information file. As explained at step 995, the layout strings can be combined with layout strings drawn from a second layout strings file and formatted according to a second layout information file. (Recall from
Although the above description focuses on presenting content to a user in a user's preferred language, a person skilled in the art will recognize that the embodiment can be generalized beyond simply language. Language is merely a context for presenting information. Thus, the above description can be generalized to any context or medium in which content be presented.
The above discussion describes the use of numerous files (for example, the use of different files for each layout strings file or each layout information file). But a person skilled in the art will recognize that individual files are not needed to implement the invention. For example, a single layout strings file can be used, the layout strings file divided into sections for different languages. Or a database can be used, with the various “files” being stored as tables within the database. Or a spreadsheet can be used, with each “file” stored as a page in the spreadsheet. In general, a master file can be used to store several sub-files, such as the layout information files and/or the layout strings files, rather than storing each file separately. (There can also be more than one master file, depending on the preferred structure: for example, the master files can be divided by language, each master file holding the files specific to that language.) The specific structure of how the data is stored can be varied in any meaningful way, as long as the functionality described above is available.
A person skilled in the art will recognize that an embodiment of the invention described above can be implemented using a computer. In that case, the method is embodied as instructions that comprise a program. The program can be stored on computer-readable media, such as floppy disks, optical disks (such as compact discs), or fixed disks (such as hard drives). The program can then be executed on a computer to implement the method. A person skilled in the art will also recognize that an embodiment of the invention described above can include a computer-readable modulated carrier signal.
Having illustrated and described the principles of the invention in a preferred embodiment thereof, it should be readily apparent to those skilled in the art that the invention can be modified in arrangement and detail without departing from such principles. All modifications coming within the spirit and scope of the accompanying claims are claimed.
Number | Name | Date | Kind |
---|---|---|---|
5603034 | Swanson | Feb 1997 | A |
5717923 | Dedrick | Feb 1998 | A |
5778380 | Siefert | Jul 1998 | A |
5797128 | Birnbaum | Aug 1998 | A |
5983227 | Nazem et al. | Nov 1999 | A |
6029245 | Scanlan | Feb 2000 | A |
6061684 | Glasser et al. | May 2000 | A |
6119078 | Kobayakawa et al. | Sep 2000 | A |
6202066 | Barkley et al. | Mar 2001 | B1 |
6209036 | Aldred et al. | Mar 2001 | B1 |
6209124 | Vermeire et al. | Mar 2001 | B1 |
6240170 | Shaffer et al. | May 2001 | B1 |
6243717 | Gordon et al. | Jun 2001 | B1 |
6285978 | Bernth et al. | Sep 2001 | B1 |
6286001 | Walker et al. | Sep 2001 | B1 |
6311180 | Fogarty | Oct 2001 | B1 |
6327628 | Anuff et al. | Dec 2001 | B1 |
6363337 | Amith | Mar 2002 | B1 |
6370498 | Flores et al. | Apr 2002 | B1 |
6381579 | Gervais et al. | Apr 2002 | B1 |
6389589 | Mishra et al. | May 2002 | B1 |
6408336 | Schneider et al. | Jun 2002 | B1 |
6415250 | Van Den Akker | Jul 2002 | B1 |
6499030 | Igata | Dec 2002 | B1 |
6529910 | Fleskes | Mar 2003 | B1 |
6542884 | Soderberg et al. | Apr 2003 | B1 |
6557005 | Burget | Apr 2003 | B1 |
6560639 | Dan et al. | May 2003 | B1 |
6571241 | Nosohara | May 2003 | B1 |
6623529 | Lakritz | Sep 2003 | B1 |
6633742 | Turner et al. | Oct 2003 | B1 |
6644322 | Webb | Nov 2003 | B2 |
6704024 | Robotham et al. | Mar 2004 | B2 |
6708172 | Wong et al. | Mar 2004 | B1 |
6738950 | Barnett | May 2004 | B1 |
6772146 | Khemlani et al. | Aug 2004 | B2 |
6784883 | Allor | Aug 2004 | B1 |
6785728 | Schneider et al. | Aug 2004 | B1 |
6785866 | Lewis et al. | Aug 2004 | B1 |
6789231 | Reynar et al. | Sep 2004 | B1 |
6826594 | Pettersen | Nov 2004 | B1 |
6871197 | Johnson | Mar 2005 | B1 |
6901367 | Berstis et al. | May 2005 | B1 |
6925595 | Whitledge et al. | Aug 2005 | B1 |
6925598 | Melham et al. | Aug 2005 | B2 |
6941512 | Cheng | Sep 2005 | B2 |
6965914 | Dowling | Nov 2005 | B2 |
6975619 | Byers et al. | Dec 2005 | B1 |
6993554 | O'Donnell | Jan 2006 | B2 |
7016977 | Dunsmoir et al. | Mar 2006 | B1 |
7085834 | Delany et al. | Aug 2006 | B2 |
7093198 | Paatero et al. | Aug 2006 | B1 |
7111242 | Grooters | Sep 2006 | B1 |
7149960 | Brooks et al. | Dec 2006 | B1 |
7149964 | Cottrille et al. | Dec 2006 | B1 |
7194524 | Suzuki et al. | Mar 2007 | B2 |
7284239 | Young et al. | Oct 2007 | B1 |
7660843 | Atkinson et al. | Sep 2010 | B1 |
20010037192 | Shimamoto et al. | Nov 2001 | A1 |
20020002557 | Straube et al. | Jan 2002 | A1 |
20020007330 | Kumar et al. | Jan 2002 | A1 |
20020019839 | Shiu | Feb 2002 | A1 |
20020046245 | Hillar et al. | Apr 2002 | A1 |
20020052954 | Polizzi et al. | May 2002 | A1 |
20020055989 | Stringer-Calvert et al. | May 2002 | A1 |
20020069081 | Ingram et al. | Jun 2002 | A1 |
20020078253 | Szondy et al. | Jun 2002 | A1 |
20020103778 | Saxena | Aug 2002 | A1 |
20020120538 | Corrie et al. | Aug 2002 | A1 |
20020123879 | Spector | Sep 2002 | A1 |
20020129001 | Levkoff et al. | Sep 2002 | A1 |
20020129052 | Glazer et al. | Sep 2002 | A1 |
20020138331 | Hosea et al. | Sep 2002 | A1 |
20020143821 | Jakubowski | Oct 2002 | A1 |
20020147790 | Snow | Oct 2002 | A1 |
20020147801 | Gullotta et al. | Oct 2002 | A1 |
20020149601 | Rajarajan et al. | Oct 2002 | A1 |
20020156902 | Crandall | Oct 2002 | A1 |
20020174150 | Dang et al. | Nov 2002 | A1 |
20020174196 | Donohoe et al. | Nov 2002 | A1 |
20020184321 | Fishman et al. | Dec 2002 | A1 |
20020198971 | Resnick et al. | Dec 2002 | A1 |
20030005002 | Chen et al. | Jan 2003 | A1 |
20030005159 | Kumhyr | Jan 2003 | A1 |
20030020749 | Abu-Hakima et al. | Jan 2003 | A1 |
20030050986 | Matthews et al. | Mar 2003 | A1 |
20030061216 | Moses | Mar 2003 | A1 |
20030105771 | Tiefenbrun et al. | Jun 2003 | A1 |
20030110272 | du Castel et al. | Jun 2003 | A1 |
20030158897 | Ben-Natan et al. | Aug 2003 | A1 |
20030163517 | Assaf et al. | Aug 2003 | A1 |
20030191817 | Fidler | Oct 2003 | A1 |
20030195923 | Bloch et al. | Oct 2003 | A1 |
20040034613 | Purvis et al. | Feb 2004 | A1 |
20040093376 | DeBoor et al. | May 2004 | A1 |
20040098406 | Roddy | May 2004 | A1 |
20040123238 | Hefetz et al. | Jun 2004 | A1 |
20040172389 | Galai et al. | Sep 2004 | A1 |
20040177015 | Galai et al. | Sep 2004 | A1 |
20040193699 | Heymann et al. | Sep 2004 | A1 |
20040199603 | Tafla et al. | Oct 2004 | A1 |
20040205118 | Yu | Oct 2004 | A1 |
20040205553 | Hall et al. | Oct 2004 | A1 |
20040205572 | Fields et al. | Oct 2004 | A1 |
20040215740 | Frank et al. | Oct 2004 | A1 |
20050055630 | Scanlan | Mar 2005 | A1 |
20050060046 | Ito et al. | Mar 2005 | A1 |
20050097008 | Ehring et al. | May 2005 | A1 |
20050097190 | Abdelhak | May 2005 | A1 |
20050188318 | Tamir et al. | Aug 2005 | A1 |
20060004763 | Horvitz et al. | Jan 2006 | A1 |
20060010390 | Guido et al. | Jan 2006 | A1 |
20060101332 | Imielinski et al. | May 2006 | A1 |
20070180432 | Gassner et al. | Aug 2007 | A1 |
20080300863 | Smith | Dec 2008 | A1 |
Number | Date | Country |
---|---|---|
0 975 128 | Jan 2000 | EP |
WO9820434 | May 1998 | WO |