asp.net mvc локализация

Добро пожаловать в мир параллелизма (в некоторой степени)!

Просто представьте, что ваша программа работает: инструкции выполняются одна за другой в том порядке, в котором они написаны, в соответствии с потоком выполнения, который они выполняют. определить за исключением из shutterPressed, которое выполняется асинхронно ( может быть ).

Поэтому, представьте, что мы входим в цикл и находимся на первой строке, <here>:

      while True:
        global shutterHasBeenPressed
        shutterHasBeenPressed = False                 # <here>
        #Stay in loop until button is pressed
        if shutterHasBeenPressed is False:
            i += 1
            if i == blink_speed:
                overlay_2.alpha = 255
            elif i == (2 * blink_speed):
                overlay_2.alpha = 0
                i = 0
            #Restart while loop
            sleep(0.1)
            continue
        #button has been pressed!
        print("Button Pressed!")

Теперь shutterHasBeenPressed был установлен на False, и следующее условие проверяется так что мы входим в if.

Программа продолжает работать, пока неожиданно не будет нажата кнопка. Скажем, он достиг <here>:

      while True:
        global shutterHasBeenPressed
        shutterHasBeenPressed = False
        #Stay in loop until button is pressed
        if shutterHasBeenPressed is False:
            i += 1
            if i == blink_speed:
                overlay_2.alpha = 255           # <here>
            elif i == (2 * blink_speed):
                overlay_2.alpha = 0
                i = 0
            #Restart while loop
            sleep(0.1)
            continue
        #button has been pressed!
        print("Button Pressed!")

На данный момент, shutterPressed работает, устанавливает shutterHasBeenPressed в True. Затем, снова в нашем цикле, итерация заканчивается, мы continue в начале цикла и ... что там?!

        shutterHasBeenPressed = False

и нажатие кнопки просто осталось незамеченным!

Я считаю, что это отвечает на ваш вопрос, спрашивая, в чем вы ошиблись. [+1121]

5
задан Rex M 19 March 2009 в 02:46
поделиться

3 ответа

Вы могли также представить ограничение, еще более трудное, чем Marc Gravell и Freddy Rios.

что-то как "en|de|fr|es". Это означало бы жесткое кодирование языки, но обычно они - немногие и известный.

3
ответ дан 18 December 2019 в 06:52
поделиться

Маршруты будут соответствовать, по умолчанию, слева направо, таким образом, "домен/дом/индекс" будет соответствовать сначала к lang=domain, controller=index, действие (значение по умолчанию для индексации), идентификатор (значение по умолчанию к 0/аннулировать).

Для фиксации этого я полагаю, что можно указать regex на MapRoute (соответствие, например, языки точно с 2 символами) - это изменилось в какой-то момент, хотя... (извините, никакой IDE в данный момент, таким образом, я не могу проверить точно).

Из памяти это могло бы быть:

routes.MapRoute( "DefaultLocalized", 
             "{lang}/{controller}/{action}/{id}",
             new { controller = "Home",
                   action = "Index",
                   id = "",},
             new { lang = "[a-z]{2}" }
           );

Обратите внимание, что Вы, вероятно, не собираетесь хотеть, чтобы каждое действие взяло "строку Ленг", таким образом, необходимо обработать часть "Ленга" маршрута или в основном контроллере или в фильтре действия (в любом случае, по-видимому, добавьте информацию к ViewData).

10
ответ дан 18 December 2019 в 06:52
поделиться

Добавьте ограничение как новое {Ленг =" [a-z] {2} "}.

Кроме того, отбросьте значение по умолчанию Ленг = "en". Если Вы не сделаете, то маршрутизация захватит правило языка при просмотре его без него. Таким образом, если бы Вы смотрите на домен, и Вы выбираете О, он использовал бы domain/en/Home/About вместо более простого домена/Дома/О

4
ответ дан 18 December 2019 в 06:52
поделиться
Другие вопросы по тегам:

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