【问题标题】:How can I guess the two letter language code for a Google suggestions feature?如何猜测 Google 建议功能的两个字母语言代码?
【发布时间】:2016-09-28 11:56:58
【问题描述】:

根据我在这里找到的内容,我实现了一个非常简单的 Google 建议功能:http://shreyaschand.com/blog/2013/01/03/google-autocomplete-api/

您甚至不必使用 XML 解析器:

+ (NSArray *)suggestionsForQuery:(NSString *)query language:(NSString *)language
{
    NSMutableArray *suggestions;

    NSString *URLString = [NSString stringWithFormat:@"http://suggestqueries.google.com/complete/search?q=%@&client=toolbar&hl=%@", query, language];

    NSError *error = nil;

    NSString *XMLString = [NSString stringWithContentsOfURL:[NSURL URLWithString:URLString] encoding:NSUTF8StringEncoding error:&error];

    if (error) {

        NSLog(@"ERROR {%@}", error.description);
    }
    else {

        XMLString = [XMLString stringByReplacingOccurrencesOfString:@"<?xml version=\"1.0\"?>" withString:@""];

        XMLString = [XMLString stringByReplacingOccurrencesOfString:@"<toplevel>" withString:@""];

        XMLString = [XMLString stringByReplacingOccurrencesOfString:@"</toplevel>" withString:@""];

        XMLString = [XMLString stringByReplacingOccurrencesOfString:@"<CompleteSuggestion>" withString:@""];

        XMLString = [XMLString stringByReplacingOccurrencesOfString:@"</CompleteSuggestion>" withString:@""];

        XMLString = [XMLString stringByReplacingOccurrencesOfString:@"<suggestion data=\"" withString:@""];

        suggestions = [NSMutableArray arrayWithArray:[XMLString componentsSeparatedByString:@"\"/>"]];

        [suggestions removeLastObject];
    }

    return suggestions;
}

只有当你已经知道两个字母的语言代码时它才有效。

你知道我可以根据用户搜索的位置猜出两个字母的语言代码吗?

如果它严格基于位置,如果假设用户在法国度假并且突然将建议更改为谷歌法国,我不会喜欢它。

是否应该基于用户已经在他的 iOS 设备上使用的语言?

【问题讨论】:

    标签: ios objective-c google-suggest


    【解决方案1】:

    这个更正实际上会解决问题:

    NSString *URLString = [NSString stringWithFormat:@"http://suggestqueries.google.com/complete/search?q=%@&client=toolbar&hl=%@", query, [[NSLocale currentLocale] languageCode]];
    

    不过,居住在印度并将其语言设置为法语的用户将获得基于 Google France 的 Google 建议。

    这更像是减轻问题的重量而不是解决问题。

    【讨论】:

      猜你喜欢
      • 2011-10-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-08
      • 1970-01-01
      • 2014-11-25
      • 1970-01-01
      相关资源
      最近更新 更多