Как указать язык моего контента, когда я отправляю POST на веб-api? [Дубликат]

Одно из возможных решений - выполнить конкатенацию вручную, вот какой-то полезный код:

import json
def append_to_json(_dict,path): 
    with open(path, 'ab+') as f:
    f.seek(0,2)                                #Go to the end of file    
    if f.tell() == 0 :                         #Check if file is empty
        f.write(json.dumps([_dict]).encode())  #If empty, write an array
    else :
        f.seek(-1,2)           
        f.truncate()                           #Remove the last character, open the array
        f.write(' , '.encode())                #Write the separator
        f.write(json.dumps(_dict).encode())    #Dump the dictionary
        f.write(']'.encode())                  #Close the array

Вы должны быть осторожны при редактировании файла вне сценария, не добавляя никакого промежутка в конце.

46
задан Quentin 15 June 2017 в 15:01
поделиться

5 ответов

Content-Language, заголовок объекта, используется для описания языка (языков), предназначенных для аудитории, чтобы он позволял пользователю дифференцироваться в соответствии с собственным предпочтительным языком пользователя. Заголовки сущностей используются как в HTTP-запросах, так и в ответах. 1

Accept-Language, HTTP-заголовок запроса, рекламирует, какие языки клиент может понять, и какой вариант локали 2 Может быть несколько языков, каждый из которых имеет необязательный вес или значение «качество». Например:

Accept-Language: da, en-gb;q=0.8, en;q=0.7

(вес по умолчанию равен 1, поэтому это эквивалентно da;q=1, en-gb;q=0.8, en;q=0.7).

Вам придется проанализировать значения и веса для см., доступен ли соответствующий перевод, и предоставить пользователю перевод в наивысшем предпочтительном языковом весе.

Рекомендуется указать пользователям альтернативу, такую ​​как установленное значение cookie, для принудительного перевода определенного языка для вашего сайта. Это связано с тем, что некоторые пользователи могут захотеть увидеть ваш сайт на определенном языке, не изменяя при этом предпочтения при выборе языка.

73
ответ дан 4 revs, 3 users 50% 15 August 2018 в 19:28
поделиться
  • 1
    Незначительная настройка вашего ответа: Content-Language - это заголовок содержимого, поэтому он применяется к контенту, будь то от сервера к клиенту или от клиента к серверу. – james.garriss 18 January 2012 в 20:19
  • 2
    RFC2616: «Поле заголовка объекта Content-Language описывает естественный язык (ы) целевой аудитории для закрытого объекта. Однако только потому, что несколько языков присутствуют внутри объекта, это не означает, что оно предназначено для нескольких лингвистических аудиторий. Примером может служить языковой праймер для начинающих, такой как «Первый урок на латыни», который явно предназначен для использования англоязычной аудиторией. В этом случае Content-Language будет содержать только «en». «R. Fielding, UC Irvine, J. Gettys, J. Mogul, H. Frystyk, L. Masinter, P. Leach, T. Berners-Lee ; 1999. – Ucho 4 April 2017 в 12:59
  • 3
    Так что на странице нет определенных языков. См. RFC 2616 Раздел 14.12 . – Ucho 4 April 2017 в 13:06

Content-Language - это язык страницы, на которой вы работаете. Accept-Language - это список языков, которые вы PREFER для принятия.

10
ответ дан Chrono Kitsune 15 August 2018 в 19:28
поделиться

Content-Language описывает язык, на котором предназначен определенный фрагмент контента. Accept-Language - это список языков, на которые пользовательский агент хочет содержать контент. Лучший способ подумать о том, что Content-Language описывает контент, а Accept-Language передает предпочтение.

11
ответ дан D.Shawley 15 August 2018 в 19:28
поделиться

Заголовок Content-Language entity используется для описания языка (языков), предназначенных для аудитории, чтобы он позволял пользователю дифференцироваться в соответствии с собственным предпочтительным языком пользователя.

Header type                     Entity header
Forbidden header name           no
CORS-safelisted response-header yes
CORS-safelisted request-header  yes

- веб-ссылка MDN - заголовки HTTP - контент-язык

HTTP-заголовок запроса Accept-Language рекламирует какие языки клиент может понять, и какой вариант локали предпочтительнее. (По языкам мы имеем в виду естественные языки, такие как английский, а не языки программирования.)

Header type                     Request header
Forbidden header name           no
CORS-safelisted request-header  yes

- веб-ссылка MDN - заголовки HTTP - Accept-Language

0
ответ дан georgeawg 15 August 2018 в 19:28
поделиться

Поле заголовка объекта Content-Language описывает естественный язык (ы) целевой аудитории для закрытого объекта. Обратите внимание, что это может быть не эквивалентно всем языкам, используемым в теле сущности.

Поле заголовка запроса Accept-Language ограничивает набор естественных языков, которые являются предпочтительными в качестве ответа на запрос

http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html

5
ответ дан Rana Prathap 15 August 2018 в 19:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: