IP Library Granted Patent US 9,569,421
Granted Patent B2
US 9,569,421 · App. 13/664,561 · Granted Feb 14, 2017

Method and system for improved language identification using language tags

Inventor: Jay Hobson (Fremont, CA)
Assignee: EXCALIBUR IP, LLC
G06F17/275G06F9/4448G06F17/218
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,569,421
App. No.
13/664,561
Granted
Feb 14, 2017
Kind
B2
Abstract

Disclosed herein is an ability to identify a supported language. A current language tag including one or more subtags, each subtag providing language identification information. In response to determining that a language referenced by the current language tag is not a supported language, accessing a stored set of mappings including one or more mappings, each mapping associating a first language tag with a second language tag, determining whether or not a mapping in the set of mappings includes the current language tag as one of the first and second language tags and a new language tag as the other of the first and second language tags, and using the new language tag as the current language tag to identify the supported language.

Claims (49)

1. A method comprising:

in response to a request to identify a supported language to display content by a client application at a client computing device, the supported language having a set of translations for use in translating the content, at least one server computing device making a determination, using a current language tag, that a language referenced by the current language tag is not the supported language, the current language tag comprising one or more subtags, each subtag providing language identification information;

in response to making the determination that the language referenced by the current language tag is not the supported language, the at least one server computing device performing elements comprising:

accessing a stored set of mappings comprising one or more mappings, each mapping associating a first language tag referencing a first language with a second language tag referencing a second language that differs from the first language;

determining whether or not a mapping in the set of mappings includes the current language tag referencing the first language as one of the first and second language tags and a new language tag referencing the second language that differs from the first language as the other of the first and second language tags;

using the new language tag as the current language tag, the new language tag identifying the second language that differs from the first language as the supported language; and

in response to the request, identifying the supported language to use in translating the content to be displayed by the client application at the client computing device.

2. The method of claim 1 , the identifying the supported language to use in translating the content to be displayed by the client application at the client computing device further comprising:

in response to determining that there is no mapping in the set of mappings that includes the current language tag, removing, by the at least one server computing device, at least one subtag from the current language tag to form a truncated language tag; and

in response to determining that a language referenced by the truncated language tag is not the supported language, the at least one computing device repeating the elements of accessing, determining and using.

3. The method of claim 1 , wherein the mapping that includes the current language tag as one of the first and second language tags comprises a lateral mapping.

4. The method of claim 1 , wherein the mapping that includes the current language tag as one of the first and second language tags comprises a forward mapping.

5. The method of claim 1 , wherein the current language tag is selected based on a user's language preferences.

6. The method of claim 5 , wherein the current language tag is selected from an ordered language tag list representing the user's language preferences.

7. The method of claim 1 , further comprising:

determining whether or not the language referenced by the current language tag is the supported language further comprising determining whether or not the current language tag is one of the language tags in a language tag listing, wherein each language supported by an entity providing language support is represented in the language tag listing, each language tag in the listing referencing a language supported by the entity.

8. A system comprising:

at least one server computing device, each server computing device comprising a processor and a storage medium for tangibly storing thereon program logic for execution by the processor, the stored program logic comprising:

making logic executed by the processor for making, in response to a request to identify a supported language to display content by a client application at a client computing device, the supported language having a set of translations for use in translating the content, a determination, using a current language tag, that a language referenced by the current language tag is not the supported language, the current language tag comprising one or more subtags, each subtag providing language identification information;

in response to making the determination that the language referenced by the current language tag is not the supported language, the stored program logic further comprising:

accessing logic executed by the processor for accessing a stored set of mappings comprising one or more mappings, each mapping associating a first language tag referencing a first language with a second language tag referencing a second language that differs from the first language;

determining logic executed by the processor for determining whether or not a mapping in the set of mappings includes the current language tag referencing the first language as one of the first and second language tags and a new language tag referencing the second language that differs from the first language as the other of the first and second language tags;

using logic executed by the processor for using the new language tag as the current language tag, the new language tag identifying the second language that differs from the first language as the supported language; and

identifying logic executed by the processor for identifying, in response to the request, the supported language to use in translating the content to be displayed by the client application at the client computing device.

9. The system of claim 8 , the identifying logic executed by the processor to identify the supported language to use in translating the content to be displayed by the client application at the client computing device further comprising:

removing logic executed by the processor for removing, in response to determining that there is no mapping in the set of mappings that includes the current language tag, at least one subtag from the current language tag to form a truncated language tag; and

repeating logic executed by the processor for repeating, in response to determining that a language referenced by the truncated language tag is not the supported language, the elements of accessing, determining and using.

10. The system of claim 8 , wherein the mapping that includes the current language tag as one of the first and second language tags comprises a lateral mapping.

11. The system of claim 8 , wherein the mapping that includes the current language tag as one of the first and second language tags comprises a forward mapping.

12. The system of claim 8 , wherein the current language tag is selected based on a user's language preferences.

13. The system of claim 12 , wherein the current language tag is selected from an ordered language tag list representing the user's language preferences.

14. The system of claim 8 , the stored program logic further comprising:

determining logic executed by the processor for determining whether or not the language referenced by the current language tag is the supported language by determining whether or not the current language tag is one of the language tags in a language tag listing, wherein each language supported by an entity providing language support is represented in the language tag listing, each language tag in the listing referencing a language supported by the entity.

15. A computer readable non-transitory storage medium for tangibly storing thereon computer readable instructions that when executed cause a server computing device to:

in response to a request to identify a supported language to display content by a client application at a client computing device, the supported language having a set of translations for use in translating the content, make a determination, using a current language tag, that a language referenced by the current language tag is not the supported language, the current language tag comprising one or more subtags, each subtag providing language identification information;

in response to making a determination that the language referenced by the current language tag is not the supported language, perform elements comprising:

accessing a stored set of mappings comprising one or more mappings, each mapping associating a first language tag referencing a first language with a second language tag referencing a second language that differs from the first language;

determining whether or not a mapping in the set of mappings includes the current language tag referencing the first language as one of the first and second language tags and a new language tag referencing the second language that differs from the first language as the other of the first and second language tags;

using the new language tag as the current language tag, the new language tag identifying the second language that differs from the first language as the supported language; and

in response to the request, identify the supported language to use in translating the content to be displayed by the client application at the client computing device.

16. The computer readable non-transitory storage medium of claim 15 , the computer readable instructions that when executed cause the server computing device to the identify the supported language to use in translating the content to be displayed by the client application at the client computing device further cause the server computing device to:

in response to determining that there is no mapping in the set of mappings that includes the current language tag, remove at least one subtag from the current language tag to form a truncated language tag; and

in response to determining that a language referenced by the truncated language tag is not the supported language, repeat the elements of accessing, determining and using.

17. The computer readable non-transitory storage medium of claim 15 , wherein the mapping that includes the current language tag as one of the first and second language tags comprises a lateral mapping.

18. The computer readable non-transitory storage medium of claim 15 , wherein the mapping that includes the current language tag as one of the first and second language tags comprises a forward mapping.

19. The computer readable non-transitory storage medium of claim 15 , wherein the current language tag is selected based on a user's language preferences.

20. The computer readable non-transitory storage medium of claim 19 , wherein the current language tag is selected from an ordered language tag list representing the user's language preferences.

21. The computer readable non-transitory storage medium of claim 15 , the instructions further comprising instructions to cause the server computing device to:

determine whether or not the language referenced by the current language tag is the supported language by determining whether or not the current language tag is one of the language tags in a language tag listing, wherein each language supported by an entity providing language support is represented in the language tag listing, each language tag in the listing referencing a language supported by the entity.

Assignments (9)
CORRECTIVE ASSIGNMENT TO CORRECT THE THE ASSIGNOR NAME PREVIOUSLY RECORDED AT REEL: 052853 FRAME: 0153. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Mar 29, 2021
From: R2 SOLUTIONS LLC
To: STARBOARD VALUE INTERMEDIATE FUND LP, AS COLLATERAL AGENT
Reel/Frame 056832/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 12, 2021
From: EXCALIBUR IP, LLC
To: R2 SOLUTIONS LLC
Reel/Frame 055283/0483 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE NAME PREVIOUSLY RECORDED ON REEL 053654 FRAME 0254. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST GRANTED PURSUANT TO THE PATENT SECURITY AGREEMENT PREVIOUSLY RECORDED. Recorded Dec 30, 2020
From: STARBOARD VALUE INTERMEDIATE FUND LP
To: R2 SOLUTIONS LLC
Reel/Frame 054981/0377 →
RELEASE OF SECURITY INTEREST IN PATENTS Recorded Jul 8, 2020
From: STARBOARD VALUE INTERMEDIATE FUND LP
To: ACACIA RESEARCH GROUP LLC; AMERICAN VEHICULAR SCIENCES LLC; BONUTTI SKELETAL INNOVATIONS LLC; CELLULAR COMMUNICATIONS EQUIPMENT LLC; INNOVATIVE DISPLAY TECHNOLOGIES LLC; LIFEPORT SCIENCES LLC; LIMESTONE MEMORY SYSTEMS LLC; MOBILE ENHANCEMENT SOLUTIONS LLC; MONARCH NETWORKING SOLUTIONS LLC; NEXUS DISPLAY TECHNOLOGIES LLC; PARTHENON UNIFIED MEMORY ARCHITECTURE LLC; R2 SOLUTIONS LLC; SAINT LAWRENCE COMMUNICATIONS LLC; STINGRAY IP SOLUTIONS LLC; SUPER INTERCONNECT TECHNOLOGIES LLC; TELECONFERENCE SYSTEMS LLC; UNIFICATION TECHNOLOGIES LLC
Reel/Frame 053654/0254 →
PATENT SECURITY AGREEMENT Recorded Jun 5, 2020
From: ACACIA RESEARCH GROUP LLC; AMERICAN VEHICULAR SCIENCES LLC; BONUTTI SKELETAL INNOVATIONS LLC; CELLULAR COMMUNICATIONS EQUIPMENT LLC; INNOVATIVE DISPLAY TECHNOLOGIES LLC; LIFEPORT SCIENCES LLC; LIMESTONE MEMORY SYSTEMS LLC; MERTON ACQUISITION HOLDCO LLC; MOBILE ENHANCEMENT SOLUTIONS LLC; MONARCH NETWORKING SOLUTIONS LLC; NEXUS DISPLAY TECHNOLOGIES LLC; PARTHENON UNIFIED MEMORY ARCHITECTURE LLC; R2 SOLUTIONS LLC; SAINT LAWRENCE COMMUNICATIONS LLC; STINGRAY IP SOLUTIONS LLC; SUPER INTERCONNECT TECHNOLOGIES LLC; TELECONFERENCE SYSTEMS LLC; UNIFICATION TECHNOLOGIES LLC
To: STARBOARD VALUE INTERMEDIATE FUND LP, AS COLLATERAL AGENT
Reel/Frame 052853/0153 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 3, 2016
From: YAHOO! INC.
To: EXCALIBUR IP, LLC
Reel/Frame 038950/0592 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 1, 2016
From: EXCALIBUR IP, LLC
To: YAHOO! INC.
Reel/Frame 038951/0295 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 18, 2016
From: YAHOO! INC.
To: EXCALIBUR IP, LLC
Reel/Frame 038383/0466 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 31, 2012
From: HOBSON, JAY
To: YAHOO! INC.
Reel/Frame 029215/0721 →
Continuity (1)
Related Publication 20140122055A1 · May 1, 2014